Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Klassenbibliothek zum Abrufen von Client-IP, geografischen Informationen, Browser und echter IP

PHP-Klassenbibliothek zum Abrufen von Client-IP, geografischen Informationen, Browser und echter IP

不言
不言Original
2018-04-23 14:32:031408Durchsuche

In diesem Artikel wird hauptsächlich die PHP-Klassenbibliothek zum Abrufen von Client-IP, geografischen Informationen, Browser und echter IP vorgestellt. Jetzt kann ich sie mit Ihnen teilen.

  1. <?php
    //作用取得客户端的ip、地理信息、浏览器、本地真实IP
     class get_gust_info { 
      ////获得访客浏览器类型
      function GetBrowser(){
       if(!empty($_SERVER[&#39;HTTP_USER_AGENT&#39;])){
        $br = $_SERVER[&#39;HTTP_USER_AGENT&#39;];
        if (preg_match(&#39;/MSIE/i&#39;,$br)) {    
                   $br = &#39;MSIE&#39;;
                 }elseif (preg_match(&#39;/Firefox/i&#39;,$br)) {
         $br = &#39;Firefox&#39;;
        }elseif (preg_match(&#39;/Chrome/i&#39;,$br)) {
         $br = &#39;Chrome&#39;;
           }elseif (preg_match(&#39;/Safari/i&#39;,$br)) {
         $br = &#39;Safari&#39;;
        }elseif (preg_match(&#39;/Opera/i&#39;,$br)) {
            $br = &#39;Opera&#39;;
        }else {
            $br = &#39;Other&#39;;
        }
        return $br;
       }else{return "获取浏览器信息失败!";} 
      }
       
      ////获得访客浏览器语言
      function GetLang(){
       if(!empty($_SERVER[&#39;HTTP_ACCEPT_LANGUAGE&#39;])){
        $lang = $_SERVER[&#39;HTTP_ACCEPT_LANGUAGE&#39;];
        $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 "获取浏览器语言失败!";}
      }
       
       ////获取访客操作系统
      function GetOs(){
       if(!empty($_SERVER[&#39;HTTP_USER_AGENT&#39;])){
        $OS = $_SERVER[&#39;HTTP_USER_AGENT&#39;];
          if (preg_match(&#39;/win/i&#39;,$OS)) {
         $OS = &#39;Windows&#39;;
        }elseif (preg_match(&#39;/mac/i&#39;,$OS)) {
         $OS = &#39;MAC&#39;;
        }elseif (preg_match(&#39;/linux/i&#39;,$OS)) {
         $OS = &#39;Linux&#39;;
        }elseif (preg_match(&#39;/unix/i&#39;,$OS)) {
         $OS = &#39;Unix&#39;;
        }elseif (preg_match(&#39;/bsd/i&#39;,$OS)) {
         $OS = &#39;BSD&#39;;
        }else {
         $OS = &#39;Other&#39;;
        }
              return $OS;  
       }else{return "获取访客操作系统信息失败!";}   
      }
       
      ////获得访客真实ip
      function Getip(){
       if(!empty($_SERVER["HTTP_CLIENT_IP"])){   
          $ip = $_SERVER["HTTP_CLIENT_IP"];
       }
       if(!empty($_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;])){ //获取代理ip
        $ips = explode(&#39;,&#39;,$_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;]);
       }
       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[&#39;REMOTE_ADDR&#39;]) ? $ip : $_SERVER[&#39;REMOTE_ADDR&#39;]; 
       if($tip=="127.0.0.1"){ //获得本地真实IP
          return $this->get_onlineip();   
       }else{
          return $tip; 
       }
      }
       
      ////获得本地真实IP
      function get_onlineip() {
          $mip = file_get_contents("http://city.ip138.com/city0.asp");
           if($mip){
               preg_match("/\[.*\]/",$mip,$sip);
               $p = array("/\[/","/\]/");
               return preg_replace($p,"",$sip[0]);
           }else{return "获取本地IP失败!";}
       }
       
      ////根据ip获得访客所在地地名
      function Getaddress($ip=&#39;&#39;){
       if(empty($ip)){
           $ip = $this->Getip();    
       }
       $ipadd = file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip=".$ip);//根据新浪api接口获取
       if($ipadd){
        $charset = iconv("gbk","utf-8",$ipadd);   
        preg_match_all("/[\x{4e00}-\x{9fa5}]+/u",$charset,$ipadds);
         
        return $ipadds;   //返回一个二维数组
       }else{return "addree is none";}  
      } 
     }
     $gifo = new get_gust_info();
     echo "你的ip:".$gifo->Getip();
     echo "<br/>所在地:";
     $ipadds = $gifo->Getaddress();
     foreach($ipadds[0] as $value){
         echo "\r\n    ".iconv("utf-8","gbk",$value);    
     }
      
     echo "<br/>浏览器类型:".$gifo->GetBrowser();
     echo "<br/>浏览器语言:".$gifo->GetLang();
     echo "<br/>操作系统:".$gifo->GetOs();

Verwandte Empfehlungen:

100 häufig verwendete PHP-Bibliotheksressourcen und -techniken

7 Möglichkeiten, den Suffixnamen von PHP-Dateien zu erhalten

Das obige ist der detaillierte Inhalt vonPHP-Klassenbibliothek zum Abrufen von Client-IP, geografischen Informationen, Browser und echter IP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn