利用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程序员工具
May 26 PHP
php 将excel导入mysql
Nov 09 PHP
深入PHP变量存储的详解
Jun 13 PHP
php实现简单洗牌算法
Jun 18 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
Aug 05 PHP
php获取四位字母和数字的随机数的实现方法
Jan 09 PHP
php使用memcoder将视频转成mp4格式的方法
Mar 12 PHP
php通过array_merge()函数合并关联和非关联数组的方法
Mar 18 PHP
php写入、删除与复制文件的方法
Jun 20 PHP
php文件上传的两种实现方法
Apr 04 PHP
微信支付开发发货通知实例
Jul 12 PHP
Yii框架核心组件类实例详解
Aug 06 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 执行系统外部命令 system() exec() passthru()
2009/08/11 PHP
php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
2011/10/31 PHP
学习php过程中的一些注意点的总结
2013/10/25 PHP
php实现session自定义会话处理器的方法
2015/01/27 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
2017/05/05 PHP
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
2011/07/31 Javascript
JQuery与JSon实现的无刷新分页代码
2011/09/13 Javascript
jQuery数据缓存功能的实现思路及简单模拟
2013/05/27 Javascript
nodejs开发微博实例
2015/03/25 NodeJs
jQuery事件与动画基础详解
2017/02/23 Javascript
Vue DevTools调试工具的使用
2017/12/05 Javascript
js获取form表单中name属性的值
2019/02/27 Javascript
说说如何使用Vuex进行状态管理(小结)
2019/04/14 Javascript
ES6数组与对象的解构赋值详解
2019/06/14 Javascript
JS时间戳与日期格式互相转换的简单方法示例
2021/01/30 Javascript
python通过pil模块获得图片exif信息的方法
2015/03/16 Python
python批量制作雷达图的实现方法
2016/07/26 Python
基于Django URL传参 FORM表单传数据 get post的用法实例
2018/05/28 Python
Python实现读取机器硬件信息的方法示例
2018/06/09 Python
pycharm打开命令行或Terminal的方法
2019/01/16 Python
对Python w和w+权限的区别详解
2019/01/23 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
用python获取txt文件中关键字的数量
2020/12/24 Python
python中温度单位转换的实例方法
2020/12/27 Python
python基于opencv实现人脸识别
2021/01/04 Python
HTML5 创建canvas元素示例代码
2014/06/04 HTML / CSS
草莓网化妆品澳大利亚站:Strawberrynet AU
2017/12/18 全球购物
师范大学应届生求职信
2013/11/21 职场文书
中专三年学习的个人自我评价
2013/12/12 职场文书
四年级下册教学反思
2014/02/01 职场文书
在校生证明
2015/06/17 职场文书
2016师德师风学习心得体会
2016/01/12 职场文书
vue前端工程的搭建
2021/03/31 Vue.js
MySQL中存储时间的最佳实践指南
2021/07/01 MySQL
vue生命周期钩子函数以及触发时机
2022/04/26 Vue.js
nginx代理实现静态资源访问的示例代码
2022/07/07 Servers