当前位置:首页 > PHP教程 > php高级应用 > 列表

PHP淘宝IP数据获取用户IP及地理位置

发布:smiling 来源: PHP粉丝网  添加日期:2014-01-06 22:57:44 浏览: 评论:0 

我们有时不想利用自己的数据库存储IP地址,自己的IP库更新慢不及时,我们可以直接使用第三方的IP库来操作,这里介绍利用淘宝IP数据获取用户IP及地理位置实现方法.

在直接在ie浏览器中打开下面地址

http://ip.taobao.com/service/getIpInfo.php?ip=8.8.8.8

返回信息,代码如下:

{"code":0,"data":{"country":"u7f8eu56fd","country_id":"US","area":"","area_id":"","region":"","region_id":"","city":"","city_id":"","county":"","county_id":"","isp":"","isp_id":"","ip":"8.8.8.8"}}

上面我们是直接在ie地址输入,这里我们利用php file_get_contents函数来获取,代码如下:

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

上面原因是通过file_get_contents由淘宝网返回的json格式的数据,我们再利用php json_decode函数转换成数组,$IP地址需要我们提供,下面提供一个获取用户真实IP地址的函数,代码如下:

  1. function getIP() 
  2.     static $realip
  3.     if (isset($_SERVER)){ 
  4.         if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){ 
  5.             $realip = $_SERVER["HTTP_X_FORWARDED_FOR"]; 
  6.         } else if (isset($_SERVER["HTTP_CLIENT_IP"])) { 
  7.             $realip = $_SERVER["HTTP_CLIENT_IP"]; 
  8.         } else { 
  9.             $realip = $_SERVER["REMOTE_ADDR"]; 
  10.         } 
  11.     } else { 
  12.         if (getenv("HTTP_X_FORWARDED_FOR")){ 
  13.             $realip = getenv("HTTP_X_FORWARDED_FOR"); 
  14.         } else if (getenv("HTTP_CLIENT_IP")) { 
  15.             $realip = getenv("HTTP_CLIENT_IP"); 
  16.         } else { 
  17.             $realip = getenv("REMOTE_ADDR"); 
  18.         } 
  19.     } 
  20.  
  21.  
  22.     return $realip

Tags: PHP淘宝 IP数据 地理位置

分享到: