• PHP获取客户端的IP、地理信息、浏览器、本地真实IP


    <?php
    
    header("Content-type:text/html;charset=utf-8");
    
    // 作用获取客户端的ip、地理信息、浏览器、本地真实IP
    class get_gust_info { 
           
        //获得访客浏览器类型
        function GetBrowser(){
            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';
                }elseif (preg_match('/QQBrowser/i',$br)) {
                    $br = 'QQBrowser';
                }elseif (preg_match('/UCBrowser/i',$br)) {
                    $br = 'UCBrowser';
                }else {
                    $br = 'Other';
                }
                return $br;
            }else {
                return false;
            }
        }
    
        //获得访客浏览器语言
        function GetLang() {
            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 false;
            }
        }
    
        //获取访客操作系统
        function GetOs(){
            if(!empty($_SERVER['HTTP_USER_AGENT'])) {
                $OS = $_SERVER['HTTP_USER_AGENT'];
                if (strpos($OS, 'Android') !== false) {//strpos()定位出第一次出现字符串的位置,这里定位为0  
                    preg_match("/(?<=Android )[d.]{1,}/", $OS, $version);  
                    $OS ='Android '.$version[0];
                }elseif (strpos($OS, 'iPhone') !== false) {  
                    preg_match("/(?<=CPU iPhone OS )[d\_]{1,}/", $OS, $version);  
                    $OS = 'iPhone iOS '.str_replace('_', '.', $version[0]);  
                }elseif (strpos($OS, 'iPad') !== false) {  
                    preg_match("/(?<=CPU OS )[d\_]{1,}/", $OS, $version);  
                    $OS = 'iPad iOS '.str_replace('_', '.', $version[0]);   
                }elseif (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 false;
            }   
        }
    
        //获得访客真实ip
        function Getip() {
            $ip = false;
            if (getenv("HTTP_CLIENT_IP")) {
                $ip = getenv("HTTP_CLIENT_IP");
            }elseif (getenv("HTTP_X_FORWARDED_FOR")) {
                $ip = getenv("HTTP_X_FORWARDED_FOR");
            }elseif (getenv("REMOTE_ADDR")) {
                $ip = getenv("REMOTE_ADDR");
            }
            return $ip;
        }
    
        //根据ip获得访客所在地地名
        function Getaddress($ip='') {
            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 "address is none";
            }  
        }
    
    }
    
    $gifo = new get_gust_info();
    
    echo "浏览器类型:".$gifo->GetBrowser().'<br>';
    echo "浏览器语言:".$gifo->GetLang().'<br>';
    echo "操作系统:".$gifo->GetOs().'<br>';
    echo "你的ip:".$gifo->getIP().'<br>';
    echo "所在地:";
    $address = $gifo->Getaddress($gifo->getIP());
    foreach ($address[0] as $key) {
        echo $key.' ';
    }
    
    ?>
    

      

  • 相关阅读:
    14个以春天为主题的网页设计
    使用 CSS3 创建下拉菜单
    视觉灵感:30个漂亮的的网站设计
    Null Object设计模式
    js插件库之图像幻灯片和画廊
    C#读取HTML文件内容写入记事本
    最好的图片水印实现思路
    抽奖系统
    对过万条数据的数据库字段内容批量替换程序
    通用 图片/文字 水印函数
  • 原文地址:https://www.cnblogs.com/pengyunjing/p/6811166.html
Copyright © 2020-2023  润新知