利用PHP获取访客IP、地区位置、浏览器及来源页面等信息

利用PHP获取访客IP、地区位置、浏览器及来源页面等信息

这篇文章主要介绍了利用PHP获取访客IP、地区位置、浏览器及来源页面等信息的相关资料,文中给出了详细的示例代码供大家参考学习,对大家具有一定的参考借鉴价值,需要的朋友们下面来一起看看吧。

前言

本文中主要介绍了关于利用PHP获取访客IP、地区位置、浏览器及来源页面等信息的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:

不多说了,每个方法都注释了,可以直接用:

示例代码

 

<?php
//这个类似用来获取访客信息的
//方便统计
class visitorInfo
{
 //获取访客ip
 public function getIp()
 {
  $ip=false;
  if(!empty($_SERVER["HTTP_CLIENT_IP"])){
   $ip = $_SERVER["HTTP_CLIENT_IP"];
  }
  if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
   $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
   if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
   for ($i = 0; $i < count($ips); $i++) {
    if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {
     $ip = $ips[$i];
     break;
    }
   }
  }
  return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
 }
 
 //根据ip获取城市、网络运营商等信息
 public function findCityByIp($ip){
  $data = file_get_contents('http://ip.taobao.com/service/getIpInfo.php?ip='.$ip);
  return json_decode($data,$assoc=true);
 }
 
 //获取用户浏览器类型
 public function getBrowser(){
  $agent=$_SERVER["HTTP_USER_AGENT"];
  if(strpos($agent,'MSIE')!==false || strpos($agent,'rv:11.0')) //ie11判断
   return "ie";
  else if(strpos($agent,'Firefox')!==false)
   return "firefox";
  else if(strpos($agent,'Chrome')!==false)
   return "chrome";
  else if(strpos($agent,'Opera')!==false)
   return 'opera';
  else if((strpos($agent,'Chrome')==false)&&strpos($agent,'Safari')!==false)
   return 'safari';
  else
   return 'unknown';
 }
 
 //获取网站来源
 public function getFromPage(){
  return $_SERVER['HTTP_REFERER'];
 }
 
}

 

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

https://www.jb51.net/article/117265.htm

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112769.html原文链接:https://javaforall.net

(0)
上一篇 2021年10月30日 下午6:00
下一篇 2021年10月30日 下午7:00


相关推荐

  • pycharm 如何批量替换多个py文件中的内容?

    pycharm 如何批量替换多个py文件中的内容?pycharm 批量替换多个文件内容

    2026年3月17日
    1
  • AutoCAD二次开发方法

    AutoCAD二次开发方法br AutoCAD 的二次开发大致有两种方式 一种是需要 AutoCAD 的运行环境 另外一种是可脱离 AutoCAD 的运行环境 br 基于 AutoCAD 运行环境 LISP LISP 是一种工程语言 在 AutoCAD 中称之为 AutoLISP 内嵌在 AutoCAD 之中 VBA 其全称为 VisualBasicf 基于微软的技术 其语法来源于 VisualBasic 内嵌在 AutoCAD 之中 ObjectARX 比较强大的二次开发工具包 是 AutoDesc 官方发布的 提供众多的

    2026年3月18日
    2
  • ArcGIS二次开发入门(一)「建议收藏」

    ArcGIS二次开发入门(一)「建议收藏」作者:朱金灿来源:http://blog.csdn.net/clever101      公司培训ArcGIS二次开发(C#作为开发语言),自己回家动手实践了一下。 1.首先是二次开发环境的安装,需要装下面两项:

    2022年6月29日
    69
  • 记一次遇到挖矿程序的经历「建议收藏」

    记一次遇到挖矿程序的经历「建议收藏」就在几天前,遇到了一次挖矿程序偷偷装在ECS阿里云服务器上的经历。那是一个风和日丽的上午,我和往常一样来到公司,倒杯水等待电脑打开,之后打开日常维护的几个系统。结果其中有一个OA系统,发现无法正常打开。一开始我以为是网络问题,但是发现打开其他网站正常,于是登上服务器准备探个究竟。登陆云服务器后,重启OA服务,发现报错,报错提示连接线程池连接不上。根据提示,怀疑是连不上部署在本地的数据服…

    2022年4月20日
    44
  • SetCapture和ReleaseCapture

    SetCapture和ReleaseCapture函数功能:该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。如果鼠标光标在另一个线程创建的窗口上,只有当鼠标键按下时系统才将鼠标输入指向指定的窗口。  函数原型:HWNDSetCapture(HWNDhwnd);  参数:  hWnd:当前线程里要捕获鼠标的

    2022年5月3日
    50
  • oracle 模糊查询语法

    oracle 模糊查询语法示例说明 通过 name 字段模糊匹配 t user 表中的数据 select fromt usertwhere instr t name name gt 0orinstr fn getpy t name 3 name gt 0orinstr fn getpy t name 4 name gt 0 其中 instr t name name gt 0 通过汉字模糊匹配例 name 为维克托 输入维克托三个字中的任

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号