تشخیص موقعیت از روی IP :


کد PHP:

function detect($ip) {
    
$default 'UNKNOWN';
    if (!
is_string($ip) || strlen($ip) < || $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;
    }