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

PHP获取浏览器信息类和客户端地理位置的2个方法

发布:smiling 来源: PHP粉丝网  添加日期:2020-11-20 10:26:16 浏览: 评论:0 

这篇文章主要介绍了PHP获取浏览器信息类和客户端地理位置的2个方法,需要的朋友可以参考下。

一、获取浏览器信息,获取访客操作系统:windows、mac、linux、unix、bsd、other,以及访客ip地址等信息的PHP,代码如下:

  1. <?php  
  2. /** 
  3.  * 获取访客信息的类:语言、浏览器、操作系统、ip、地理位置、isp。 
  4.  * 使用: 
  5.  *   $obj = new guest_info; 
  6.  *   $obj->getlang();     //获取访客语言:简体中文、繁體中文、english。 
  7.  *   $obj->getbrowser();  //获取访客浏览器:msie、firefox、chrome、safari、opera、other。 
  8.  *   $obj->getos();       //获取访客操作系统:windows、mac、linux、unix、bsd、other。 
  9.  *   $obj->getip();       //获取访客ip地址。 
  10.  *   $obj->getadd();      //获取访客地理位置,使用 baidu 隐藏接口。 
  11.  *   $obj->getisp();      //获取访客isp,使用 baidu 隐藏接口。 
  12.  */  
  13. class guest_info{  
  14.     function getlang() {  
  15.         $lang = substr($_server['http_accept_language'], 0, 4);  
  16.         //使用substr()截取字符串,从 0 位开始,截取4个字符  
  17.         if (preg_match('/zh-c/i',$lang)) {  
  18.         //preg_match()正则表达式匹配函数  
  19.             $lang = '简体中文';  
  20.         } 
  21.         elseif (preg_match('/zh/i',$lang)) {  
  22.             $lang = '繁體中文';  
  23.         }  
  24.         else {  
  25.             $lang = 'english';  
  26.         }  
  27.         return $lang;  
  28.     }  
  29.     function getbrowser() {  
  30.         $browser = $_server['http_user_agent'];  
  31.         if (preg_match('/msie/i',$browser)) {  
  32.             $browser = 'msie';  
  33.         }  
  34.         elseif (preg_match('/firefox/i',$browser)) {  
  35.             $browser = 'firefox';  
  36.         }  
  37.         elseif (preg_match('/chrome/i',$browser)) {  
  38.             $browser = 'chrome';  
  39.         }  
  40.         elseif (preg_match('/safari/i',$browser)) {  
  41.             $browser = 'safari';  
  42.         }  
  43.         elseif (preg_match('/opera/i',$browser)) {  
  44.             $browser = 'opera';  
  45.         }  
  46.         else {  
  47.             $browser = 'other';  
  48.         }  
  49.         return $browser;  
  50.     }  
  51.     function getos() {  
  52.         $os = $_server['http_user_agent'];  
  53.         if (preg_match('/win/i',$os)) {  
  54.             $os = 'windows';  
  55.         }  
  56.         elseif (preg_match('/mac/i',$os)) {  
  57.             $os = 'mac';  
  58.         }  
  59.         elseif (preg_match('/linux/i',$os)) {  
  60.             $os = 'linux';  
  61.         }  
  62.         elseif (preg_match('/unix/i',$os)) {  
  63.             $os = 'unix';  
  64.         }  
  65.         elseif (preg_match('/bsd/i',$os)) {  
  66.             $os = 'bsd';  
  67.         }  
  68.         else {  
  69.             $os = 'other';  
  70.         }  
  71.         return $os;  
  72.     }  
  73.     function getip() {  
  74.         if (!emptyempty($_server['http_client_ip'])) {  
  75.         //如果变量是非空或非零的值,则 empty()返回 false。  
  76.             $ip = explode(',',$_server['http_client_ip']);  
  77.         }  
  78.         elseif (!emptyempty($_server['http_x_forwarded_for'])) {  
  79.             $ip = explode(',',$_server['http_x_forwarded_for']);  
  80.         }  
  81.         elseif (!emptyempty($_server['remote_addr'])) {  
  82.             $ip = explode(',',$_server['remote_addr']);  
  83.         }  
  84.         else {  
  85.             $ip[0] = 'none';  
  86.         }  
  87.         return $ip[0];  
  88.     }      
  89. }  
  90.  
  91. $obj = new guest_info;  
  92. echo    $obj->getlang();  //获取访客语言:简体中文、繁體中文、english。  
  93. echo    $obj->getbrowser(); //获取访客浏览器:msie、firefox、chrome、safari、opera、other。  
  94. echo    $obj->getos();  //获取访客操作系统:windows、mac、linux、unix、bsd、other。  
  95. echo    $obj->getip();  //获取访客ip地址。  
  96. ?> 

二、php利用腾讯ip分享计划获取ip地理位置,代码如下:

  1. <?php  
  2. function getiploc_qq($queryip){      
  3.   $url = 'http://ip.qq.com/cgi-bin/searchip?searchip1='.$queryip;      
  4.   $ch = curl_init($url);      
  5.   curl_setopt($ch,curlopt_encoding ,'gb2312');    
  6.   curl_setopt($ch, curlopt_timeout, 10);     
  7.   curl_setopt($ch, curlopt_returntransfer, true) ; // 获取数据返回    
  8.   $result = curl_exec($ch);      
  9.   $result = mb_convert_encoding($result"utf-8""gb2312"); // 编码转换,否则乱码   
  10.   curl_close($ch);     
  11.   preg_match("@<span>(.*)</span></p>@iu",$result,$iparray);      
  12.   $loc = $iparray[1];      
  13.   return $loc;  
  14. }   
  15. //使用  
  16. echo getiploc_qq("183.37.209.57"); //即可得到ip地址所在的地址位置。     
  17. ?> 

三、php利用新浪ip查询接口获取ip地理位置,代码如下:

  1. <?php   
  2. function getiploc_sina($queryip){      
  3.    $url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip='.$queryip;      
  4.    $ch = curl_init($url);       
  5.    curl_setopt($ch,curlopt_encoding ,'utf8');       
  6.    curl_setopt($ch, curlopt_timeout, 5);     
  7.    curl_setopt($ch, curlopt_returntransfer, true) ; // 获取数据返回    
  8.    $location = curl_exec($ch);      
  9.    $location = json_decode($location);      
  10.    curl_close($ch);           
  11.    $loc = "";     
  12.    if($location===false) return "";       
  13.       if (emptyempty($location->desc)) {      
  14.       $loc = $location->province.$location->city.$location->district.$location->isp;    
  15.    }else{         $loc = $location->desc;      
  16.    }      
  17.     return $loc;  
  18. }  
  19. echo getiploc_sina("183.37.209.57");  
  20. ?> 

Tags: PHP浏览器信息类

分享到: