日期:2011-07-20  浏览次数:20578 次

<?php
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("/^(10172\.16192\.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;
   		}
   		
	} 

}