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


Posted in PHP onJune 27, 2017

前言

本文中主要介绍了关于利用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'];
 }

}

总结

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

PHP 相关文章推荐
php设计模式 State (状态模式)
Jun 26 PHP
深入探讨PHP中的内存管理问题
Aug 31 PHP
Zend Studio去除编辑器的语法警告设置方法
Oct 24 PHP
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
Jun 03 PHP
PHP和JavaScrip分别获取关联数组的键值示例代码
Sep 16 PHP
PHP实现将textarea的值根据回车换行拆分至数组
Jun 10 PHP
详细解读PHP的Yii框架中登陆功能的实现
Aug 21 PHP
PHP中两个float(浮点数)比较实例分析
Sep 27 PHP
PHP类型约束用法示例
Sep 28 PHP
PHP设计模式之工厂模式详解
Oct 24 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
Mar 12 PHP
七种PHP开发环境搭建工具
Jun 28 PHP
简单谈谈PHP面向对象之标识对象
Jun 27 #PHP
什么是PHP文件?如何打开PHP文件?
Jun 27 #PHP
PHP面向对象之工作单元(实例讲解)
Jun 26 #PHP
thinkphp框架page类与bootstrap分页(美化)
Jun 25 #PHP
解决出现SoapFault (looks like we got no XML document)的问题
Jun 24 #PHP
php-fpm开启状态统计的方法详解
Jun 23 #PHP
PHP多种序列化/反序列化的方法详解
Jun 23 #PHP
You might like
十大感人催泪爱情动漫 第一名至今不忍在看第二遍
2020/03/04 日漫
在Windows版的PHP中使用ADO
2006/10/09 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
2014/07/04 PHP
PHP实现WebService的简单示例和实现步骤
2015/03/27 PHP
php中使用sftp教程
2015/03/30 PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
2016/04/15 PHP
PHP PDOStatement::bindParam讲解
2019/01/30 PHP
JS 时间显示效果代码
2009/08/23 Javascript
通过jquery还原含有rowspan、colspan的table的实现方法
2012/02/10 Javascript
Javascript中call的两种用法实例
2013/12/13 Javascript
js事件监听器用法实例详解
2015/06/01 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
2015/06/25 Javascript
JavaScript实现文本框中默认显示背景图片在获得焦点后消失的方法
2015/07/01 Javascript
Javascript中获取浏览器类型和操作系统版本等客户端信息常用代码
2016/06/28 Javascript
AngularJS入门教程之Cookies读写操作示例
2016/11/02 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
bootstrap的常用组件和栅格式布局详解
2017/05/02 Javascript
jQuery插件开发发送短信倒计时功能代码
2017/05/09 jQuery
vue组件间通信子与父详解(二)
2017/11/07 Javascript
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
2018/01/16 Javascript
对vue里函数的调用顺序介绍
2018/03/17 Javascript
extract-text-webpack-plugin用法详解
2019/02/14 Javascript
使用node搭建自动发图文微博机器人的方法
2019/03/22 Javascript
从Node.js事件触发器到Vue自定义事件的深入讲解
2020/06/26 Javascript
vue 弹出遮罩层样式实例
2020/07/22 Javascript
Python进阶篇之字典操作总结
2016/11/16 Python
Python实现字符串格式化输出的方法详解
2017/09/20 Python
python 执行shell命令并将结果保存的实例
2018/05/11 Python
电子工程专业毕业生求职信
2014/03/14 职场文书
银行竞聘演讲稿范文
2014/04/23 职场文书
环保建议书600字
2014/05/14 职场文书
英语教研活动总结
2014/07/02 职场文书
2014年军人思想汇报范文
2014/10/12 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
趣味运动会加油词
2015/07/18 职场文书
JavaScript中关于预编译、作用域链和闭包的理解
2021/03/31 Javascript