此篇文章为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地域信息有所了解了,你可以参考说明,希望可以对你的开发思路有所帮助。
宠物免费领养小程序,欢迎来踩