A-A+

PHP如何获得用户的真实IP归属地

2017年09月01日 PHP技术文章 评论 3 条 阅读 0 views 次

提供IP地址库接口的互联网企业不在少数,不管是国内的BAT还是国外的GOOGLE都提供了IP地址接口,当然,自己也可以做个IP地址库,网上都有提供地址IP库包下载的,这类的应用大多用在分类站点上面,比如像赶集或者是58同城上面,先是判断用户是哪个地区的,然后将其跳转到相应的城市首页。

在最近做的项目中就遇到了这样的分类功能,从网上收集了几个较为不错的PHP获得用户真实IP的接口。

一,新浪IP API

新浪IP接口用得是最多的了,不少站点都在使用新浪IP接口,这个接口也是我使用最多的,不仅速度快,而且IP库比较齐全。新浪这个应该说是最不错的。并且返回的数据类型为可以自定义格式(默认为纯文本格式,根据format的参数定义,还可以返回JS、Json格式。下面列举的是JS的格式)。

新浪的IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js

新浪多地域测试方法:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=218.192.3.42

实际这两个是没有太大区别的,通常我们使用第一个接口就OK了,再来看一下实例(php):

  1. <?php  
  2. $ip = @file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=".$_GET["ip"]);  
  3. echo $ip;  
  4. ?>  

返回值数据格式:

var remote_ip_info = {“ret”:1,”start”:”59.37.164.179″,”end”:”59.37.165.17″,”country”:”\u4e2d\u56fd”,”province”:”\u5e7f\u4e1c”,”city”:”\u6c5f\u95e8″,”district”:””,”isp”:”\u7535\u4fe1″,”type”:””,”desc”:””};

二,淘宝IP地址库

淘宝官方的IP地址库,提供国家、省、市、县、运营商全方位信息,信息维度广,格式规范。提供完善的统计分析报表,省准确度超过99.8%,市准确度超过96.8%,数据质量有保障。但真正投入使用的时候发现速度上面并不是很快,偶尔会有缓慢的情况。

使用接口的例子1(php):

  1. <?php  
  2. $ip = @file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".$_GET["ip"]);  
  3. $ip = json_decode($ip,true);  
  4. ?>  

淘宝返回值可以参考:http://blog.csdn.net/gebitan505/article/details/14165927

使用接口的例子2(php):

  1. /** 
  2.  * 获取 IP  地理位置 
  3.  * 淘宝IP接口 
  4.  * @Return: array 
  5.  */  
  6. function getCity($ip)  
  7. {  
  8. $url="http://ip.taobao.com/service/getIpInfo.php?ip=".$ip;  
  9. $ip=json_decode(file_get_contents($url));   
  10. if((string)$ip->code=='1'){  
  11.   return false;  
  12.   }  
  13.   $data = (array)$ip->data;  
  14. return $data;   
  15. }  

三,126 IP API

126提供的这个功能方面不如新浪但是数据相对来说是比较准确的。126.net貌似是网易官网的,之前网易官网推出一个有道的ip接口,但现在也已经销声匿迹了,对于126的ip接口,速度不是一般的快呀,比淘宝要快得多了,用着很不错。

使用接口的例子(php):

  1. <?php  
  2. $ip = @file_get_contents("http://ip.ws.126.net/ipquery?ip=".$_GET["ip"]);  
  3. echo $ip;  
  4. ?>  

返回值数据格式:

  1. var lo="北京市", lc="朝阳区"var localAddress={city:"朝阳区", province:"北京市"};  

其它提供免费ip接口的还有搜狐,腾讯,腾讯原来的接口地址为 fw.qq.com,现在已经停止提供免费接口了,新的接口貌似还需要去申请站点权限,搜狐提供的免费IP接口速度也是蛮快的,只是没有找到可使用的文档,不知道返回的数据如何获取,好在网上有一些JS的实例。

搜狐另外的IP地址查询接口:http://txt.go.sohu.com/ip/soip

搜狐IP地址查询接口(默认GBK):http://pv.sohu.com/cityjson

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

运行实例后返回的数据如下:

  1. var returnCitySN = {"cip""61.49.175.76""cid""110115""cname""北京市大兴区"};//xiariboke.net  
标签:

3 条留言  访客:3 条  博主:0 条

  1. 美股指数

    新手,学习中,多谢啦

  2. 里维斯社

    一般的站长工具都可以查到IP吧

    • smiling

      一般站长工具都可以查到的。

给我留言