您当前的位置:首页 > 分类 > 技术资讯 > PHP > 正文

PHP获取客户端操作系统,浏览器,语言,IP,IP归属地等

发布时间:2014-08-29 10:29:52      来源:51推一把
【摘要】PHP获取客户端操作系统,浏览器,语言,IP,IP归属地等


class Client
{
  ////获得访客浏览器类型
 function Get_Browser(){
  if(!empty($_SERVER[HTTP_USER_AGENT])){
   $br = $_SERVER[HTTP_USER_AGENT];
      if (preg_match(/MSIE/i,$br)) {   
    $br = MSIE;
   }
   elseif (preg_match(/Firefox/i,$br)) {
        $br = Firefox;
      }
      elseif (preg_match(/Chrome/i,$br)) {
        $br = Chrome;
         }
         elseif (preg_match(/Safari/i,$br)) {
        $br = Safari;
      }
      elseif (preg_match(/Opera/i,$br)) {
    $br = Opera;
      }else {
    $br = Other;
      }
      return $br;
     }
     else{
      return "unknow";
     }
  }
 
  ////获得访客浏览器语言
 function Get_Lang(){
  if(!empty($_SERVER[HTTP_ACCEPT_LANGUAGE])){
   $lang = $_SERVER[HTTP_ACCEPT_LANGUAGE];
       $lang = substr($lang,0,5);
      if(preg_match("/zh-cn/i",$lang)){
        $lang = "简体中文";
      }
      elseif(preg_match("/zh/i",$lang)){
        $lang = "繁体中文";
      }
      else{
           $lang = "English";
      }
      return $lang;
     }
     else{
      return "unknow";
     }
  }
 
   ////获取访客操作系统
 function Get_Os(){
     if(!empty($_SERVER[HTTP_USER_AGENT])){
   $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; 
     }
     else{
      return "unknow";
     }  
  }
 
  ////获得访客真实ip
 function Get_Ip_Addr(){
     if(!empty($_SERVER["HTTP_CLIENT_IP"])){  
        $ip = $_SERVER["HTTP_CLIENT_IP"];
     }
     if(!empty($_SERVER[HTTP_X_FORWARDED_FOR])){ //获取代理ip
      $ips = explode(,,$_SERVER[HTTP_X_FORWARDED_FOR]);
     }
     if($ip){
        $ips = array_unshift($ips,$ip);
     }
     $count = count($ips);
  for($i=0;$i<$count;$i++){  
       if(!preg_match("/^(10|172.16|192.168)./i",$ips[$i])){//排除局域网ip
         $ip = $ips[$i];
         break;   
        } 
  } 
     $tip = empty($_SERVER[REMOTE_ADDR]) ? $ip : $_SERVER[REMOTE_ADDR];
     if($tip=="127.0.0.1"){ //获得本地真实IP
        return self::get_onlineip();  
     }
     else{
        return $tip;
     }
  }
 
  ////获得本地真实IP
  function get_onlineip() {
  $ip_json = @file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=myip");
  $ip_arr=json_decode(stripslashes($ip_json),1);
  if($ip_arr[code]==0)
  {
   return $ip_arr[data][ip];
  }
  
   }
 
  ////根据ip获得访客所在地地名
 function Get_Ip_From($ip=){
  if(empty($ip)){
   $ip = self::Getip();   
  }
     $ip_json=@file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".$ip);//根据taobao ip
     $ip_arr=json_decode(stripslashes($ip_json),1);
     if($ip_arr[code]==0)
     {
      return $ip_arr;
     }
     else
     {
      return false;
     }
     
 }

}