1 <?php
  2 // 作用取得客户端的ip、地理信息、浏览器、本地真实IP
  3 class get_gust_info {
  4
  5  ////获得访客浏览器类型
  6  function GetBrowser(){
  7   if(!empty($_SERVER['HTTP_USER_AGENT'])){
  8    $br = $_SERVER['HTTP_USER_AGENT'];
  9    if (preg_match('/MSIE/i',$br)) {
 10               $br = 'MSIE';
 11             }elseif (preg_match('/Firefox/i',$br)) {
 12     $br = 'Firefox';
 13    }elseif (preg_match('/Chrome/i',$br)) {
 14     $br = 'Chrome';
 15       }elseif (preg_match('/Safari/i',$br)) {
 16     $br = 'Safari';
 17    }elseif (preg_match('/Opera/i',$br)) {
 18        $br = 'Opera';
 19    }else {
 20        $br = 'Other';
 21    }
 22    return $br;
 23   }else{return "获取浏览器信息失败!";}
 24  }
 25
 26  ////获得访客浏览器语言
 27  function GetLang(){
 28   if(!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
 29    $lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
 30    $lang = substr($lang,0,5);
 31    if(preg_match("/zh-cn/i",$lang)){
 32     $lang = "简体中文";
 33    }elseif(preg_match("/zh/i",$lang)){
 34     $lang = "繁体中文";
 35    }else{
 36        $lang = "English";
 37    }
 38    return $lang;
 39
 40   }else{return "获取浏览器语言失败!";}
 41  }
 42
 43   ////获取访客操作系统
 44  function GetOs(){
 45   if(!empty($_SERVER['HTTP_USER_AGENT'])){
 46    $OS = $_SERVER['HTTP_USER_AGENT'];
 47      if (preg_match('/win/i',$OS)) {
 48     $OS = 'Windows';
 49    }elseif (preg_match('/mac/i',$OS)) {
 50     $OS = 'MAC';
 51    }elseif (preg_match('/linux/i',$OS)) {
 52     $OS = 'Linux';
 53    }elseif (preg_match('/unix/i',$OS)) {
 54     $OS = 'Unix';
 55    }elseif (preg_match('/bsd/i',$OS)) {
 56     $OS = 'BSD';
 57    }else {
 58     $OS = 'Other';
 59    }
 60          return $OS;
 61   }else{return "获取访客操作系统信息失败!";}
 62  }
 63
 64  ////获得访客真实ip
 65  function Getip(){
 66   if(!empty($_SERVER["HTTP_CLIENT_IP"])){
 67      $ip = $_SERVER["HTTP_CLIENT_IP"];
 68   }
 69   if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){ //获取代理ip
 70    $ips = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
 71   }
 72   if($ip){
 73      $ips = array_unshift($ips,$ip);
 74   }
 75
 76   $count = count($ips);
 77   for($i=0;$i<$count;$i++){
 78     if(!preg_match("/^(10|172\.16|192\.168)\./i",$ips[$i])){//排除局域网ip
 79      $ip = $ips[$i];
 80      break;
 81      }
 82   }
 83   $tip = empty($_SERVER['REMOTE_ADDR']) ? $ip : $_SERVER['REMOTE_ADDR'];
 84   if($tip=="127.0.0.1"){ //获得本地真实IP
 85      return $this->get_onlineip();
 86   }else{
 87      return $tip;
 88   }
 89  }
 90
 91  ////获得本地真实IP
 92  function get_onlineip() {
 93      $mip = file_get_contents("http://city.ip138.com/city0.asp");
 94       if($mip){
 95           preg_match("/\[.*\]/",$mip,$sip);
 96           $p = array("/\[/","/\]/");
 97           return preg_replace($p,"",$sip[0]);
 98       }else{return "获取本地IP失败!";}
 99   }
100
101  ////根据ip获得访客所在地地名
102  function Getaddress($ip=''){
103   if(empty($ip)){
104       $ip = $this->Getip();
105   }
106   $ipadd = file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip=".$ip);//根据新浪api接口获取
107   if($ipadd){
108    $charset = iconv("gbk","utf-8",$ipadd);
109    preg_match_all("/[\x{4e00}-\x{9fa5}]+/u",$charset,$ipadds);
110
111    return $ipadds;   //返回一个二维数组
112   }else{return "addree is none";}
113  }
114 }
115 $gifo = new get_gust_info();
116 echo "你的ip:".$gifo->Getip();
117 echo "<br/>所在地:";
118 $ipadds = $gifo->Getaddress();
119 foreach($ipadds[0] as $value){
120     echo "\r\n    ".iconv("utf-8","gbk",$value);
121 }
122
123 echo "<br/>浏览器类型:".$gifo->GetBrowser();
124 echo "<br/>浏览器语言:".$gifo->GetLang();
125 echo "<br/>操作系统:".$gifo->GetOs();
126
127
128 ?>

转载于:https://www.cnblogs.com/jatvsjat/articles/2688704.html

php 获取客户端的ip、地理信息、浏览器信息、本地真实ip相关推荐

  1. 关于同一局域网中,获取的IP非本地真实IP的问题。

    关于同一局域网中,获取的IP非本地真实IP的问题. 目录结构 查看是否开启了电脑上的 "投屏" 功能 禁用除 "WLAN" 外的其他 "本地连接&qu ...

  2. 312个免费高速HTTP代理IP(能隐藏自己真实IP地址) - 杨尚川的个人页面 - 开源

    原文地址为: 312个免费高速HTTP代理IP(能隐藏自己真实IP地址) - 杨尚川的个人页面 - 开源 124.88.67.20:843 190.36.223.93:8080 117.147.221 ...

  3. emlog评论ajax,emlog评论:获取评论用户操作系统与浏览器信息

    1.打开include/model/comment_model.php文件 找到while ($row = $this->db->fetch_array($ret)) { (约第45行), ...

  4. 服务器如何隐藏真实IP地址?服务器隐藏真实IP的方法

    服务器隐藏真实IP的方法 1.使用高防的盾机服务 2.使用CDN技术 3.使用域名导向 如今,网站服务器的安全受到越来越多的重视,但是难免会遇到黑客使用DDoS攻击网站,为了网站的安全通常都会做好防御 ...

  5. win10计算机ip如何更改,Win10本地连接ip怎么更改_Win10怎么更改ip地址?-192路由网...

    问:Win10本地连接IP地址怎么更改? 本人是电脑小白,新买的电脑,是Win10系统:请问Win10电脑中的IP地址在哪里更改? 答:Win10系统IP地址需要在"本地连接"的 ...

  6. 获取用户的操作系统及浏览器信息

    最近在开发中需要从request中获取操作系统,浏览器及浏览器版本信息.我们都知道通过request.getHeader("User-Agent")可以获取到.但是这样获取到的信息 ...

  7. .NET 获取客户端的操作系统版本、浏览器版本和IP地址

    我们在使用.NET做网站的时候,很多情况下需要需要知道客户端的操作系统版本和浏览器版本,怎样获取客户端的操作系统和浏览器版本呢?我们可以通过分析UserAgent来获取. .NET 获取客户端的操作系 ...

  8. c# 获取客户端IP地址方法

    客户端ip: Request.ServerVariables.Get("Remote_Addr").ToString();  客户端主机名: Request.ServerVaria ...

  9. JavaWeb 获取客户端的真实IP地址

    通常我们在JavaWeb中获取客户端IP地址只需要使用request.getRemoteAddr();方法即可 如果前端使用了Nginx等反向代理的话,我们使用request.getRemoteAdd ...

  10. PHP、Tomcat获取Nginx代理后的客户端真实IP

    PHP.Tomcat获取Nginx代理后的客户端真实IP 文章目录 PHP.Tomcat获取Nginx代理后的客户端真实IP 一.PHP获取Nginx代理后客户端真实IP Nginx配置 PHP配置 ...

最新文章

  1. 同时起两个mysql 起不了_到底是谁!让你在冬天的早晨起不了床?
  2. 第十三周项目二-动物这样叫(2)
  3. BZOJ - 2244 拦截导弹 (dp,CDQ分治+树状数组优化)
  4. 上海市互联网数据中心建设导则(2019版)
  5. hihocoder-Week200-Shorteniring Sequence
  6. oracle分页包,Oracle分页获取数据的实现 (包和存储过程)
  7. 用反射简化 asp.net 报表的一点总结
  8. php用date语句获取时间,关于php date()函数获取时间的设置和使用方法
  9. (王道408考研数据结构)第五章树-第三节1:二叉树遍历(先序、中序和后序)
  10. android 盒子刷 下载,一加5刷机盒子
  11. Android系统开发(3)---如何分析ANR Log的总结
  12. Flink-org.apache.flink.streaming.api.watermark.Watermark
  13. JavaScript 设计模式学习第七篇- 单例模式
  14. udacity 学java_Udacity前端开发(入门)第一个月学习小结
  15. 定位点击WebBrowser、点击Flash、偷菜外挂
  16. STM32存储器知识的相关应用(IAP、Bit Banding)
  17. 洋钱罐借款「顶风作案」
  18. Linux下mplayer播放器安装及故障排除
  19. 2017cad光标大小怎么调_如何更改CAD光标大小及颜色?
  20. 小猪的Python学习之旅 —— 14.项目实战:抓取豆瓣音乐Top 250数据存到Excel中

热门文章

  1. 到底工资要多少合适?
  2. netty与socket对比_Netty之WebSocket和四种IO介绍
  3. VS2008环境下编译使用SGI STL(using stlport 5.2.1)
  4. 'pip' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  5. 【luogu T34117 打油门】 题解
  6. [转载]未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序。
  7. 写给对前途迷茫的朋友:五句话定会改变你的人生
  8. iOS .xib文件 添加点击事件 及 点击不响应 注意点
  9. 那些年面过的坑,都在这里了~
  10. 035 spring amqp