利用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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 怎么将方波转化为正弦波(正弦波变成方波的原理)

    一、题目要求:1、使用555做出脉冲方波2、使用TL084运放做出方波和锯齿波3、使用TLM314稳压做直流偏置4、方波要求峰峰值为1V,正弦波要求峰值为0~2V,锯齿波要求峰峰值为1V。二、解题流程1、使用555做出脉冲方波(1)参数计算(2)仿真设计图:(3)仿真波形(4)实际操作中总结的经验A、一个滑动变阻器十分的重要,我们需要购入一个,在正式比赛的时候。(如果要参加比赛,我们自己买一…

    2022年4月18日
    205
  • Java 8系列之Stream的基本语法详解

    Java 8系列之Stream的基本语法详解本文转至:https://blog.csdn.net/io_field/article/details/54971761概述Stream是用函数式编程方式在集合类上进行复杂操作的工具,其集成了J

    2022年8月6日
    5
  • 多线程(一):创建线程和线程的常用方法

    多线程(一):创建线程和线程的常用方法一:为什么要学多线程应付面试:多线程几乎是面试中必问的题,所以掌握一定的基础知识是必须的。了解并发编程:实际工作中很少写多线程的代码,这部分代码一般都被人封装起来了,在业务中使用多线程的机会也不是很多(看具体项目),但是作为一个高级程序员如果不会多线程是说不过去的。二:进程与线程进程进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统…

    2022年4月28日
    47
  • 系统日志查看journalctl命令详解

    系统日志查看journalctl命令详解简介从2012年开始,大部分linux发行版本开始从传统的systemv初始化系统移植到一个叫做systemd的全新系统。systemd用来启动系统并管理进程。systemd包含了一个叫做journalctl的辅助组件,其主要作用是管理系统的事件日志记录。journalctl可以查看所有的系统日志文件,由于日志信息量很大,journalctl还提供了各种参数帮助用户更快速的定位到日志信息。默认情况下,用户都可以访问自己的日志。对于系统主日志和其他用户的日志,仅限于有权限的用户访问,比如root用户,

    2022年5月10日
    40
  • 走过2011—年终总结

    走过2011—年终总结

    2021年9月7日
    59
  • redis cluster原理详解_redis cluster原理

    redis cluster原理详解_redis cluster原理本文转载自:https://zhuanlan.zhihu.com/p/69800024RedisCluster是Redis官方提供的集群解决方案。由于业务的飞速增长,单机模式总会遇到内存、性能等各种瓶颈,这个时候我们总会喊,上集群啊。就跟我家热得快炸了,你总喊开空调呀一样。的确,上集群可以解决大多数问题,但是在使用集群的过程中,不可避免会遇到这样那样的问题,这个时候怎么办呢,各种百度各种群里去问吗?NO,作为开发人员,在享受第三方提供的方便前,有必要去了解其基本的工作机制,这样才能在遇到问题时快速定位,

    2022年10月14日
    3

发表回复

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

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