js获取IP地址对应的地区代码
2015-04-27来源:

例如 URL:

返回:"City, State" if found otherwise defaults to "Hollywood, CA"

[js]代码:

function detect_city($ip) {

$default = 'Hollywood, CA';

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);

$content = curl_exec($ch);

if (!is_null($curl_info)) {

$curl_info = curl_getinfo($ch);

}

curl_close($ch);

if ( preg_match('{

City : ([^<]*)}i', $content, $regs) ) {

$city = $regs[1];

}

if ( preg_match('{

State/Province : ([^<]*)}i', $content, $regs) ) {

$state = $regs[1];

}

if( $city!='' && $state!='' ){

$location = $city . ', ' . $state;

return $location;

}else{

return $default;

}

}

更多信息请查看IT技术专栏

推荐信息
Baidu
map