通过ip查找省市 ip查询接口

淘宝IP地址查询接口:http://ip.taobao.com/service/getIpInfo.php?ip=【ip地址】

$url='http://ip.taobao.com/service/getIpInfo.php?ip=113.118.198.201';
$result = file_get_contents($url);
$result = json_decode($result,true);

结果例子:

Array
(
	[country] => 中国
	[country_id] => CN
	[area] => 华南
	[area_id] => 800000
	[region] => 广东省
	[region_id] => 440000
	[city] => 深圳市
	[city_id] => 440300
	[county] => 
	[county_id] => -1
	[isp] => 电信
	[isp_id] => 100017
	[ip] => 113.118.198.201
)

优点:数据返回的是json格式,数据信息详细,调用方便。
缺点:访问限制,最近经常出现502.

搜狐IP地址查询接口(默认GBK):http://pv.sohu.com/cityjson
搜狐IP地址查询接口(可设置编码):http://pv.sohu.com/cityjson?ie=utf-8

	$url = "http://pv.sohu.com/cityjson?ie=utf-8";
	$cityInfo = file_get_contents($url);

结果例子:

	var returnCitySN = {"cip": "113.118.198.201", "cid": "440300", "cname": "广东省深圳市"};

单独获取某个数据

	preg_match('/"cid": "([0-9]+)"/',$cityInfo,$matches);
	$city_id = isset($matches[1]) ? $matches[1] : '';

结果例子:

440300

优点:速度快。
缺点:数据信息不够详细,本地测试正常,放服务器IP地址会有变化,定位不精准。(PS:如果有解决方案,请告诉我。谢谢)

百度ip地址查询接口:http://api.map.baidu.com/location/ip

	$url = "http://api.map.baidu.com/location/ip?ip=".$ip."&ak=p6ufcWtNc5dipIuLPLiyuRn1GQ5IyUOR&coor=bd09ll";
	$result = file_get_contents($url);
	$cityInfo = json_decode($result,true);	

结果例子:

	{  
	    address: "CN|北京|北京|None|CHINANET|1|None",    #地址  
	    content:    #详细内容  
	    {  
	        address: "北京市",    #简要地址  
	        address_detail:    #详细地址信息  
	        {  
	            city: "北京市",    #城市  
	            city_code: 131,    #百度城市代码  
	            district: "",    #区县  
	            province: "北京市",    #省份  
	            street: "",    #街道  
	            street_number: ""    #门址  
	        },  
	        point:    #当前城市中心点  
	        {  
	            x: "116.39564504",  
	            y: "39.92998578"  
	        }  
	    },  
	    status: 0    #返回状态码 
	 }

优点:稳定,快速。IP定位准确。

你可能感兴趣的:(PHP)