根據訪問用戶IP判斷所屬區域信息
function getIP(){
if (isset($_SERVER)) {
if (isset($_SERVER[HTTP_X_FORWARDED_FOR])) {
$realip = $_SERVER[HTTP_X_FORWARDED_FOR];
} elseif (isset($_SERVER[HTTP_CLIENT_IP])) {
$realip = $_SERVER[HTTP_CLIENT_IP];
} else {
$realip = $_SERVER[REMOTE_ADDR];
}
} else {
if (getenv("HTTP_X_FORWARDED_FOR")) {
$realip = getenv( "HTTP_X_FORWARDED_FOR");
} elseif (getenv("HTTP_CLIENT_IP")) {
$realip = getenv("HTTP_CLIENT_IP");
} else {
$realip = getenv("REMOTE_ADDR");
}
}
return $realip;
}
$ip = getIP();
/*獲取客戶端瀏覽地址*/
$from=$_SERVER['HTTP_REFERER'];
/*客戶端ip*/
if(getenv('HTTP_CLIENT_IP')) {
$ip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR')) {
$ip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR')) {
$ip = getenv('REMOTE_ADDR');
} else {
$ip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
}
// 利用新浪接口根據ip查詢所在區域信息
$res0 = file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=$ip");
$res0 = json_decode($res0,true);
print_r($res0);
// 利用淘寶接口根據ip查詢所在區域信息
$res1 = file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=$ip");
//把json值轉化為數組
$res1 = json_decode($res1,true);
print_r($res1);
示例輸出結果如下:
stdClass Object
(
[ret] => 1
[start] => XXX.XXX.XXX.XXX
[end] => XXX.XXX.XXX.XXX
[country] => 中國
[province] => 北京
[city] => 北京
[district] =>
[isp] => 電信
[type] => 機房
[desc] => 南三環洋橋電信機房
)
stdClass Object
(
[code] => 0
[data] => stdClass Object
(
[country] => 中國
[country_id] => 86
[area] => 華北
[area_id] => 100000
[region] => 北京市
[region_id] => 110000
[city] => 北京市
[city_id] => 110000
[county] =>
[county_id] => -1
[isp] => 電信
[isp_id] => 100017
[ip] => XXX.XXX.XXX.XXX
)
)