PHP如何获得用户的真实IP归属地
提供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):
- <?php
- $ip = @file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=".$_GET["ip"]);
- echo $ip;
- ?>
返回值数据格式:
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):
- <?php
- $ip = @file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".$_GET["ip"]);
- $ip = json_decode($ip,true);
- ?>
淘宝返回值可以参考:http://blog.csdn.net/gebitan505/article/details/14165927
使用接口的例子2(php):
- /**
- * 获取 IP 地理位置
- * 淘宝IP接口
- * @Return: array
- */
- function getCity($ip)
- {
- $url="http://ip.taobao.com/service/getIpInfo.php?ip=".$ip;
- $ip=json_decode(file_get_contents($url));
- if((string)$ip->code=='1'){
- return false;
- }
- $data = (array)$ip->data;
- return $data;
- }
三,126 IP API
126提供的这个功能方面不如新浪但是数据相对来说是比较准确的。126.net貌似是网易官网的,之前网易官网推出一个有道的ip接口,但现在也已经销声匿迹了,对于126的ip接口,速度不是一般的快呀,比淘宝要快得多了,用着很不错。
使用接口的例子(php):
- <?php
- $ip = @file_get_contents("http://ip.ws.126.net/ipquery?ip=".$_GET["ip"]);
- echo $ip;
- ?>
返回值数据格式:
- 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
运行实例后返回的数据如下:
- var returnCitySN = {"cip": "61.49.175.76", "cid": "110115", "cname": "北京市大兴区"};//xiariboke.net
新手,学习中,多谢啦
一般的站长工具都可以查到IP吧
一般站长工具都可以查到的。