رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
تشخیص موقعیت از روی IP
#1
function detect($ip) {
    $default = 'UNKNOWN';
    if (!is_string($ip) || strlen($ip) < 1 || $ip == '127.0.0.1' || $ip == 'localhost') {
        $ip = '8.8.8.8';
    }
    $curlopt_useragent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)';
    $url = 'http://ipinfodb.com/ip_locator.php?ip=' . urlencode($ip);
    $ch = curl_init();
    $curl_opt = array(
        CURLOPT_FOLLOWLOCATION  => 1,
        CURLOPT_HEADER      => 0,
        CURLOPT_RETURNTRANSFER  => 1,
        CURLOPT_USERAGENT   => $curlopt_useragent,
        CURLOPT_URL       => $url,
        CURLOPT_TIMEOUT         => 1,
        CURLOPT_REFERER         => 'http://' . $_SERVER['HTTP_HOST'],
    );
    curl_setopt_array($ch, $curl_opt);
    ob_start();
    curl_exec($ch);
    $content = ob_get_contents();
    ob_end_clean();
    curl_close($ch);
     
    if(preg_match('#<li>City : ([^<]*)</li>#i', $content, $regs)) {
        $city = $regs[1];
    }
    if(preg_match('#<li>State/Province : ([^<]*)</li>#i', $content, $regs)) {
        $state = $regs[1];
    }
 
    if($city != '' && $state != '') {
        $location = $city . ', ' . $state;
        return $location;
    }
    else {
        return $default; 
    }
}
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان