PS:原创文章,如需转载,请注明出处,谢谢! ????
本文地址:http://flyer0126.iteye.com/blog/1583082
?
/** * 根据访问用户IP判断所属区域信息 * * @author flyer0126 * @since 2012/07/09 */ /** * 获取用户端ip * @return Ambigous <unknown, string> */ 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(); // 利用新浪接口根据ip查询所在区域信息 $res0 = file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=$ip"); $res0 = json_decode($res0); print_r($res0); // 利用淘宝接口根据ip查询所在区域信息 $res1 = file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=$ip"); $res1 = json_decode($res1); 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
)
)