利用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

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 每天一道算法_1_放苹果「建议收藏」

    Description把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。Input第一行是测试数据的数目t(0 Output对输入的每组数据M和N,用一行输出相应的K。Sample Input17 3Sample Output8 解析: 设f(m,n) 为m个

  • 怎么画等距线_十字线画法

    怎么画等距线_十字线画法 等距线的画法本文作者徐庆荣(武汉大学) 等距线画法可分为栅格(光栅)方式和矢量方式二种。栅格方式一般采用“距离变换”等算子实现,算法简练,但在不同方向上的等距线可能不严格等距。矢量方式是按几何关系通过坐标计算获得等距线位置,算法复杂,但精度高。本文介绍的是矢量方式的等距线画法。1.      概述简言之,等距线是指与已知线条(折线或曲线)等距的线条。等距线的应用甚广,例如

  • solr删除索引_solr索引迁移

    solr删除索引_solr索引迁移http方式删除某个core下的所有索引其中collection_test是这个core的名称http://127.0.0.1:8983/solr/collection_test/update/?stream.body=*:*&stream.contentType=text/xml;charset=utf-8&commit=true

    2022年10月26日
  • 锅炉g3水处理题库(锅炉水处理考试题及答案)

    题库来源:安全生产模拟考试一点通公众号小程序安全生产模拟考试一点通:G3锅炉水处理考试参考答案及G3锅炉水处理考试试题解析是安全生产模拟考试一点通题库老师及G3锅炉水处理操作证已考过的学员汇总,相对有效帮助G3锅炉水处理最新解析学员顺利通过考试。1、【多选题】空白试验是为了消除或减少()。(AD)A、.试剂B、.偶然误差C、.方法误差D、.仪器误差E、.操作误差2、【多选题】锅筒内部有()装置。(ACDE)A、.蒸汽净化B、.自动给水C、.连续排污D、.加药E、.给

  • Navicat Premium 15激活码【2021.10最新】

    (Navicat Premium 15激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~09LV…

  • IDEA忽略文件,防止git提交不想提交的文件的探索

    IDEA忽略文件,防止git提交不想提交的文件的探索使用IDEA开发有一段时间了,从陌生到熟悉的过程算是很平稳的度过,感谢IntelliJIDEA交流群(群号244908708)里面的群友对我提供的帮助,感谢群主的github上面提供的资料。这篇文章是探索git忽略文件提交的一些方面的研究,分为2个部分,内容如下1.在项目中隐藏掉你不想看到的文件夹或者文件,2.使用.ignore插件在IDEA中忽略你要提交的文件。一个…

发表回复

您的电子邮箱地址不会被公开。

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