Maison  >  Article  >  développement back-end  >  Bibliothèque de classes PHP pour obtenir l'adresse IP du client, les informations géographiques, le navigateur et l'adresse IP réelle

Bibliothèque de classes PHP pour obtenir l'adresse IP du client, les informations géographiques, le navigateur et l'adresse IP réelle

不言
不言original
2018-04-23 14:32:031369parcourir

Cet article présente principalement la bibliothèque de classes PHP pour obtenir l'adresse IP du client, les informations géographiques, le navigateur et l'adresse IP réelle. Maintenant, je la partage avec vous. Les amis dans le besoin peuvent s'y référer

  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();
Recommandations associées :

100 ressources et techniques de bibliothèque PHP couramment utilisées

7 façons d'obtenir le suffixe des fichiers PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn