Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 12171|回复: 0
打印 上一主题 下一主题

PHP获取客户端操作系统,浏览器,语言,IP,IP归属地等

[复制链接]

338

主题

341

帖子

1739

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1739
跳转到指定楼层
楼主
发表于 2016-12-28 15:18:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<?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;
                   }
                  
        }

}

http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2013/0811/13737.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|飞克网 ( 皖ICP备16023507号 )

GMT+8, 2024-12-22 22:41 , Processed in 0.119807 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表