PHP获取浏览器信息类和客户端地理位置方法有哪些
创始人
2024-12-13 23:00:40
0次

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

复制代码 代码如下:


/**
 * 获取访客信息的类:语言、浏览器、操作系统、ip、地理位置、isp。
 * 使用:
 *   $obj = new guest_info;
 *   $obj->getlang();     //获取访客语言:简体中文、繁體中文、english。
 *   $obj->getbrowser();  //获取访客浏览器:msie、firefox、chrome、safari、opera、other。
 *   $obj->getos();       //获取访客操作系统:windows、mac、linux、unix、bsd、other。
 *   $obj->getip();       //获取访客ip地址。
 *   $obj->getadd();      //获取访客地理位置,使用 baidu 隐藏接口。
 *   $obj->getisp();      //获取访客isp,使用 baidu 隐藏接口。
 */ 
class guest_info{ 
    function getlang() { 
        $lang = substr($_server['http_accept_language'], 0, 4); 
        //使用substr()截取字符串,从 0 位开始,截取4个字符 
        if (preg_match('/zh-c/i',$lang)) { 
        //preg_match()正则表达式匹配函数 
            $lang = '简体中文'; 
        }
        elseif (preg_match('/zh/i',$lang)) { 
            $lang = '繁體中文'; 
        } 
        else { 
            $lang = 'english'; 
        } 
        return $lang; 
    } 
    function getbrowser() { 
        $browser = $_server['http_user_agent']; 
        if (preg_match('/msie/i',$browser)) { 
            $browser = 'msie'; 
        } 
        elseif (preg_match('/firefox/i',$browser)) { 
            $browser = 'firefox'; 
        } 
        elseif (preg_match('/chrome/i',$browser)) { 
            $browser = 'chrome'; 
        } 
        elseif (preg_match('/safari/i',$browser)) { 
            $browser = 'safari'; 
        } 
        elseif (preg_match('/opera/i',$browser)) { 
            $browser = 'opera'; 
        } 
        else { 
            $browser = 'other'; 
        } 
        return $browser; 
    } 
    function getos() { 
        $os = $_server['http_user_agent']; 
        if (preg_match('/win/i',$os)) { 
            $os = 'windows'; 
        } 
        elseif (preg_match('/mac/i',$os)) { 
            $os = 'mac'; 
        } 
        elseif (preg_match('/linux/i',$os)) { 
            $os = 'linux'; 
        } 
        elseif (preg_match('/unix/i',$os)) { 
            $os = 'unix'; 
        } 
        elseif (preg_match('/bsd/i',$os)) { 
            $os = 'bsd'; 
        } 
        else { 
            $os = 'other'; 
        } 
        return $os; 
    } 
    function getip() { 
        if (!empty($_server['http_client_ip'])) { 
        //如果变量是非空或非零的值,则 empty()返回 false。 
            $ip = explode(',',$_server['http_client_ip']); 
        } 
        elseif (!empty($_server['http_x_forwarded_for'])) { 
            $ip = explode(',',$_server['http_x_forwarded_for']); 
        } 
        elseif (!empty($_server['remote_addr'])) { 
            $ip = explode(',',$_server['remote_addr']); 
        } 
        else { 
            $ip[0] = 'none'; 
        } 
        return $ip[0]; 
    }     
} 

$obj = new guest_info; 
echo    $obj->getlang();  //获取访客语言:简体中文、繁體中文、english。 
echo    $obj->getbrowser(); //获取访客浏览器:msie、firefox、chrome、safari、opera、other。 
echo    $obj->getos();  //获取访客操作系统:windows、mac、linux、unix、bsd、other。 
echo    $obj->getip();  //获取访客ip地址。 
?>


二、php利用腾讯ip分享计划获取ip地理位置

复制代码 代码如下:


function getiploc_qq($queryip){     
  $url = 'http://ip.qq.com/cgi-bin/searchip?searchip1='.$queryip;     
  $ch = curl_init($url);     
  curl_setopt($ch,curlopt_encoding ,'gb2312');   
  curl_setopt($ch, curlopt_timeout, 10);    
  curl_setopt($ch, curlopt_returntransfer, true) ; // 获取数据返回   
  $result = curl_exec($ch);     
  $result = mb_convert_encoding($result, "utf-8", "gb2312"); // 编码转换,否则乱码  
  curl_close($ch);    
  preg_match("@(.*)

@iu",$result,$iparray);     
  $loc = $iparray[1];     
  return $loc; 
}  
//使用 
echo getiploc_qq("183.37.209.57"); //即可得到ip地址所在的地址位置。    
?>

三、php利用新浪ip查询接口获取ip地理位置

复制代码 代码如下:


function getiploc_sina($queryip){     
   $url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip='.$queryip;     
   $ch = curl_init($url);      
   curl_setopt($ch,curlopt_encoding ,'utf8');      
   curl_setopt($ch, curlopt_timeout, 5);    
   curl_setopt($ch, curlopt_returntransfer, true) ; // 获取数据返回   
   $location = curl_exec($ch);     
   $location = json_decode($location);     
   curl_close($ch);          
   $loc = "";    
   if($location===false) return "";      
      if (empty($location->desc)) {     
      $loc = $location->province.$location->city.$location->district.$location->isp;   
   }else{         $loc = $location->desc;     
   }     
    return $loc; 
} 
echo getiploc_sina("183.37.209.57"); 
?>

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...