lanxiaoyu

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;
           }
           
    }

}

分类:

技术点:

相关文章: