PHP獲取客戶端操作系統,瀏覽器,語言,IP,IP歸屬地等


  1 <?php
  2 class Client
  3 {
  4   ////獲得訪客瀏覽器類型
  5     function Get_Browser(){
  6         if(!empty($_SERVER['HTTP_USER_AGENT'])){
  7             $br = $_SERVER['HTTP_USER_AGENT'];
  8             if (preg_match('/MSIE/i',$br)) {    
  9                 $br = 'MSIE';
 10             }
 11             elseif (preg_match('/Firefox/i',$br)) {
 12                  $br = 'Firefox';
 13             }
 14             elseif (preg_match('/Chrome/i',$br)) {
 15                  $br = 'Chrome';
 16                }
 17                elseif (preg_match('/Safari/i',$br)) {
 18                  $br = 'Safari';
 19             }
 20             elseif (preg_match('/Opera/i',$br)) {
 21                 $br = 'Opera';
 22             }else {
 23                 $br = 'Other';
 24             }
 25             return $br;
 26            }
 27            else{
 28                return "unknow";
 29            } 
 30   }
 31   
 32   ////獲得訪客瀏覽器語言
 33     function Get_Lang(){
 34         if(!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
 35             $lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
 36                 $lang = substr($lang,0,5);
 37             if(preg_match("/zh-cn/i",$lang)){
 38                  $lang = "簡體中文";
 39             }
 40             elseif(preg_match("/zh/i",$lang)){
 41                  $lang = "繁體中文";
 42             }
 43             else{
 44                     $lang = "English";
 45             }
 46             return $lang;
 47            }
 48            else{
 49                return "unknow";
 50            }
 51   }
 52   
 53    ////獲取訪客操作系統
 54     function Get_Os(){
 55            if(!empty($_SERVER['HTTP_USER_AGENT'])){
 56             $OS = $_SERVER['HTTP_USER_AGENT'];
 57               if (preg_match('/win/i',$OS)) {
 58                  $OS = 'Windows';
 59             }
 60             elseif (preg_match('/mac/i',$OS)) {
 61                  $OS = 'MAC';
 62             }
 63             elseif (preg_match('/linux/i',$OS)) {
 64                  $OS = 'Linux';
 65             }
 66             elseif (preg_match('/unix/i',$OS)) {
 67                  $OS = 'Unix';
 68             }
 69             elseif (preg_match('/bsd/i',$OS)) {
 70                  $OS = 'BSD';
 71             }
 72             else {
 73                  $OS = 'Other';
 74             }
 75             return $OS;  
 76            }
 77            else{
 78                return "unknow";
 79            }   
 80   }
 81   
 82   ////獲得訪客真實ip
 83     function Get_Ip_Addr(){
 84            if(!empty($_SERVER["HTTP_CLIENT_IP"])){   
 85               $ip = $_SERVER["HTTP_CLIENT_IP"];
 86            }
 87            if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){ //獲取代理ip
 88             $ips = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
 89            }
 90            if($ip){
 91               $ips = array_unshift($ips,$ip); 
 92            }
 93            $count = count($ips);
 94         for($i=0;$i<$count;$i++){   
 95              if(!preg_match("/^(10|172\.16|192\.168)\./i",$ips[$i])){//排除局域網ip
 96                   $ip = $ips[$i];
 97                   break;    
 98               }  
 99         }  
100            $tip = empty($_SERVER['REMOTE_ADDR']) ? $ip : $_SERVER['REMOTE_ADDR']; 
101            if($tip=="127.0.0.1"){ //獲得本地真實IP
102               return self::get_onlineip();   
103            }
104            else{
105               return $tip; 
106            }
107   }
108   
109   ////獲得本地真實IP
110   function get_onlineip() {
111         $ip_json = @file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=myip");
112         $ip_arr=json_decode(stripslashes($ip_json),1);
113         if($ip_arr['code']==0)
114         {
115             return $ip_arr['data']['ip'];
116         }
117         
118    }
119   
120   ////根據ip獲得訪客所在地地名
121     function Get_Ip_From($ip=''){
122         if(empty($ip)){
123             $ip = self::Getip();    
124         }
125            $ip_json=@file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".$ip);//根據taobao ip
126            $ip_arr=json_decode(stripslashes($ip_json),1);
127            if($ip_arr['code']==0)
128            {
129                return $ip_arr;
130            }
131            else
132            {
133                return false;
134            }
135            
136     } 
137 
138 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM