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 }