新浪和淘宝ip地址地域查询库AIP

php php 913      收藏
新浪和淘宝ip地址地域查询库AIP

此篇文章为wordpress开发经验分享,如果你也是一个开发者,那么希望本文能够给你的开发思路有一些帮助。

通过访客IP或者特定IP获取ip的省、市、城市等信息

我们在一些项目中,需要用到通过访客IP来获取该访客所在的国家、省/州、城市等信息,那么在wordpress的项目开发中,或者说以php语言项目开发中,我们如何对这些ip的地域进行获取呢?

如果是自己建立一个ip地域库,那么这就是一个非常繁琐的工作了,并且建立好了之后,我们还需要进行维护,对于我们的项目开发会有后续的一些维护成本,

因此在这里我们介绍国内的2个AIP,使用这个接口来获取这些信息,并且这篇文章是针对于php对信息的获取,在阅读时请注意区分。

新浪AIP接口的使用

国内比较好使用的AIP接口有2个,这里比较推荐新浪的,我们在实际项目开发中,一开始使用的是淘宝的AIP,但实际使用淘宝经常会出现返回错误或者页面无法打开的情况发生,因此换成了新浪。

新浪在后续使用中一直保持比较好的稳定性,因此这里我们也比较推荐新浪的AIP。

新浪和淘宝的AIP都是通过php解析输出json数据的,因此使用起来非常的方便。

新浪的AIP查询地址为:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=175.11.92.202

(最后的ip地址为查询的地址)

返回的json数据为:

var remote_ip_info =
{
"ret":1,
"start":-1,
"end":-1,
"country":"\u4e2d\u56fd",
"province":"\u6e56\u5357",
"city":"\u957f\u6c99",
"district":"",
"isp":"",
"type":"",
"desc":""
};

json可获取到”country”(国家)、”province”(省/州)、”city”(城市)

因此使用php来获取这些信息是非常简单的,我们这里简单分享一下代码,已提供给大家参考:

$ip='175.9.49.175';//可设变量ip
$get_ip_url='http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip='.$ip;
$ip_results = file_get_contents($get_ip_url);
$jsonMatches = array();
preg_match('#\{.+?\}#', $ip_results, $jsonMatches);
if(!isset($jsonMatches[0])){ return false; }
$ip_result= json_decode($jsonMatches[0], true);
$city=$ip_result["city"];//获取城市
$country=$ip_result["country"];//获取国家
$province=$ip_result["province"];//获取省区

这样我们就能获取到我们想要的信息了。

比如输出一个  某某城市的朋友,欢迎访问之类的,或者你还有更加复杂的功能也可以使用到。

新浪的格式是城市名称,比如长沙,返回“长沙”两个字符。

淘宝AIP的使用

淘宝AIP在我们使用时出现了好几次不稳定的状态,因此如果你想要使用,还请斟酌,以免不稳定造成不便。

淘宝的获取地址为:http://ip.taobao.com/service/getIpInfo.php?ip=175.11.92.202

(最后的ip地址为查询的地址)

返回的json数据为:

{
"code":0,
"data":{
"country":"\u4e2d\u56fd",
"country_id":"CN",
"area":"\u534e\u4e2d",
"area_id":"400000",
"region":"\u6e56\u5357\u7701",
"region_id":"430000",
"city":"\u957f\u6c99\u5e02",
"city_id":"430100",
"county":"",
"county_id":"-1",
"isp":"\u7535\u4fe1",
"isp_id":"100017",
"ip":"175.11.92.202"
}
}

这里也简单分享一下代码:

$ip='175.9.49.175';//可设变量ip
$get_ip_url='http://ip.taobao.com/service/getIpInfo.php?ip='.$ip;
$ip_result = file_get_contents($get_ip_url);
if($ip_result["code"]!=0){$repot="无法获取IP省区地址源";}else{
$ip_result = json_decode($ip_result,true);
$retrum_city=$ip_result["data"]["city"];}//$retrum_city就是获取到的城市

淘宝的格式是城市名称加市,比如长沙,返回“长沙市”三个字符。

通过这篇文字的介绍,你应该对于国内两家获取IP地域信息有所了解了,你可以参考说明,希望可以对你的开发思路有所帮助。