php专区

 首页 > php专区 > PHP应用 > 常用功能 > PHP淘宝IP数据获取用户IP及地理位置 - php高级应用

PHP淘宝IP数据获取用户IP及地理位置 - php高级应用

分享到:
【字体:
导读:
          我们有时不想利用自己的数据库存储IP地址,自己的IP库更新慢不及时,我们可以直接使用第三方的IP库来操作,这里介绍利用淘宝IP数据获取用户IP...

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

我们有时不想利用自己的数据库存储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
分享到:
PHP 利用curl_init发起http请求模仿登录 ...
PHP 利用curl_init发起http请求模仿登录 http请求包括两种,一种是我们普通的http请求登录,另一种是另一种https请求登录,下面我来分别给各位同学详细介绍利用curl_init来实现http与https进行登录。 备注:使用curl_init函数,必须要打开这个php扩展。 1.打开php.ini,开启extension=php_curl....
php测试代码执行消耗的内存和时间 - php...
php测试代码执行消耗的内存和时间 在php中要测试代码执行消耗的内存和时间我们可以直接使用俩函数,microtime 和 memory_get_usage就可以了,下面我来给大家介绍介绍。 我们先来看看microtime 和 memory_get_usage函数用法吧 含义和用法  microtime() 函数返回当前 Unix 时间戳和微秒数。 ...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……