利用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 相关文章推荐
PHP4实际应用经验篇(3)
Oct 09 PHP
通用PHP动态生成静态HTML网页的代码
Mar 04 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
Jan 23 PHP
基于curl数据采集之正则处理函数get_matches的使用
Apr 28 PHP
探讨:array2xml和xml2array以及xml与array的互相转化
Jun 24 PHP
php字符串函数学习之strstr()
Mar 27 PHP
PHP实现Google plus的好友拖拽分组效果
Oct 21 PHP
thinkPHP内置字符串截取函数用法详解
Nov 15 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
Mar 12 PHP
PHP 计算两个特别大的整数实例代码
May 07 PHP
Laravel5.1 框架表单验证操作实例详解
Jan 07 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 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
深入解析PHP垃圾回收机制对内存泄露的处理
2013/06/14 PHP
php利用事务处理转账问题
2015/04/22 PHP
PHP中set error handler函数用法小结
2015/11/11 PHP
用jQuery扩展自写的 UI导航
2010/01/13 Javascript
JS基础之undefined与null的区别分析
2011/08/08 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
在线引用最新jquery文件的实现方法
2016/08/26 Javascript
javascript创建对象的3种方法
2016/11/02 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
原生Javascript插件开发实践
2017/01/18 Javascript
js实现符合国情的日期插件详解
2017/01/19 Javascript
vue动态生成dom并且自动绑定事件
2017/04/19 Javascript
Vue点击切换Class变化,实现Active当前样式操作
2020/07/17 Javascript
微信小程序视频弹幕发送功能的实现
2020/12/28 Javascript
python实现向ppt文件里插入新幻灯片页面的方法
2015/04/28 Python
python字典的常用操作方法小结
2016/05/16 Python
Python wxPython库消息对话框MessageDialog用法示例
2018/09/03 Python
Python中使用__new__实现单例模式并解析
2019/06/25 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
cProfile Python性能分析工具使用详解
2019/07/22 Python
Python loguru日志库之高效输出控制台日志和日志记录
2020/03/07 Python
Django在Model保存前记录日志实例
2020/05/14 Python
Python gevent协程切换实现详解
2020/09/14 Python
HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字等
2018/11/30 HTML / CSS
澳大利亚人信任的清洁平台,您的私人管家:Jarvis
2020/12/25 全球购物
Servlet都有哪些方法?主要作用是什么?
2014/03/04 面试题
测量实习生自我鉴定
2013/09/19 职场文书
学校司机岗位职责
2013/11/14 职场文书
药剂专业自荐信范文
2014/04/16 职场文书
财务会计专业自荐书
2014/06/30 职场文书
创先争优公开承诺书
2014/08/30 职场文书
2014领导班子专题民主生活会对照检查材料思想汇报
2014/09/23 职场文书
公司出差管理制度范本
2015/08/05 职场文书
大学生村官工作心得体会
2016/01/23 职场文书
如何利用Python实现一个论文降重工具
2021/07/09 Python