2013.08 12 用PHP获取客户端操作系统,浏览器,语言,IP,IP归属地 来源:本站...

< ? 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 ( "/^(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 ;
            }
 
     }
 
}

你可能感兴趣的:(2013.08 12 用PHP获取客户端操作系统,浏览器,语言,IP,IP归属地 来源:本站...)