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