利用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读取和编写XML DOM的实现代码
Feb 03 PHP
解析coreseek for sphinx的使用
Jun 21 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
Jul 01 PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
Dec 25 PHP
使用PHP强制下载PDF文件示例
Jan 17 PHP
PHP加Nginx实现动态裁剪图片方案
Mar 10 PHP
php生成xml时添加CDATA标签的方法
Oct 17 PHP
PHP简单选择排序算法实例
Jan 26 PHP
typecho插件编写教程(四):插件挂载
May 28 PHP
php实现网页缓存的工具类分享
Jul 14 PHP
jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
Oct 22 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
Aug 07 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
体育彩票排列三组选三算法分享
2014/03/07 PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
2014/08/22 PHP
php计算整个目录大小的方法
2015/06/19 PHP
composer.lock文件的作用
2016/02/03 PHP
深入解析PHP的Yii框架中的event事件机制
2016/03/17 PHP
Javascript注入技巧
2007/06/22 Javascript
JQuery 操作/获取table具体代码
2013/06/13 Javascript
jquery ui dialog替代confirm实例分析
2016/01/25 Javascript
实例讲解jQuery中对事件的命名空间的运用
2016/05/24 Javascript
JavaScript核心语法总结(推荐)
2016/06/02 Javascript
浅谈JavaScript 标准对象
2016/06/02 Javascript
iframe中使用jquery进行查找的方法【案例分析】
2016/06/17 Javascript
JavaScript实现图片本地预览功能【不用上传至服务器】
2017/09/20 Javascript
laravel实现中文和英语互相切换的例子
2019/09/30 Javascript
JS实现简单随机3D骰子
2019/10/24 Javascript
layui实现给某一列加点击事件
2019/10/26 Javascript
微信小程序中使用 async/await的方法实例分析
2020/05/06 Javascript
[00:37]2016完美“圣”典风云人物:AMS宣传片
2016/12/06 DOTA
python用字典统计单词或汉字词个数示例
2014/04/22 Python
Python多进程同步Lock、Semaphore、Event实例
2014/11/21 Python
基于scrapy实现的简单蜘蛛采集程序
2015/04/17 Python
python实现DES加密解密方法实例详解
2015/06/30 Python
pygame游戏之旅 添加游戏介绍
2018/11/20 Python
Python OpenCV调用摄像头检测人脸并截图
2020/08/20 Python
Python 多线程共享变量的实现示例
2020/04/17 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
2020/05/20 Python
用CSS3实现瀑布流布局的示例代码
2017/11/10 HTML / CSS
BCBG官网:BCBGMAXAZRIA
2017/12/29 全球购物
匡威俄罗斯官网:Converse俄罗斯
2020/05/09 全球购物
2019年Java面试必问之经典试题
2012/09/12 面试题
四种会话跟踪技术
2015/05/20 面试题
领导班子对照检查材料
2014/09/22 职场文书
教师四风问题对照检查材料
2014/09/26 职场文书
入党介绍人意见怎么写
2015/06/03 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书
铁拳制作人赞《铁拳7》老头环Mod:制作精良 但别弄了
2022/04/03 其他游戏