利用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 相关文章推荐
用缓存实现静态页面的测试
Dec 06 PHP
Php 构造函数construct的前下划线是双的_
Dec 08 PHP
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
Jul 05 PHP
利用curl抓取远程页面内容的示例代码
Jul 23 PHP
PHP获取一个字符串中间一部分字符的方法
Aug 19 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
Oct 30 PHP
PHP日期函数date格式化UNIX时间的方法
Mar 19 PHP
php查询whois信息的方法
Jun 08 PHP
PHP编写RESTful接口的方法
Feb 21 PHP
PHP魔术方法之__call与__callStatic使用方法
Jul 23 PHP
自写的利用PDO对mysql数据库增删改查操作类
Feb 19 PHP
laravel添加前台跳转成功页面示例
Oct 22 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函数extension_loaded()用法实例
2015/01/19 PHP
8个必备的PHP功能开发
2015/10/02 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
PHP手机短信验证码实现流程详解
2018/05/17 PHP
在网页中屏蔽快捷键
2006/09/06 Javascript
JavaScript 验证浏览器是否支持javascript的方法小结
2009/05/17 Javascript
javascript 闭包
2011/09/15 Javascript
如何制作浮动广告 JavaScript制作浮动广告代码
2012/12/30 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
2014/04/29 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
2015/01/28 Javascript
JS实现的在线调色板实例(附demo源码下载)
2016/03/01 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
2016/03/28 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
详解基于angular-cli配置代理解决跨域请求问题
2017/07/05 Javascript
JQuery判断正整数整理小结
2017/08/21 jQuery
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
2017/10/24 Javascript
打通前后端构建一个Vue+Express的开发环境
2018/07/17 Javascript
Jquery实现无缝向上循环滚动列表的特效
2019/02/13 jQuery
vue 移动端注入骨架屏的配置方法
2019/06/25 Javascript
[01:02:20]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
在Django中进行用户注册和邮箱验证的方法
2016/05/09 Python
对numpy的array和python中自带的list之间相互转化详解
2018/04/13 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
2019/01/08 Python
使用Nibabel库对nii格式图像的读写操作
2020/07/01 Python
英国领先的奢侈品零售商之一:CRUISE
2016/12/02 全球购物
毕业生个人投资创业计划书
2014/01/04 职场文书
致跳远运动员加油稿
2014/02/11 职场文书
建筑院校毕业生求职信
2014/06/13 职场文书
历史学专业求职信
2014/06/19 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
资料员岗位职责
2015/02/10 职场文书
写给孩子的新学期寄语
2015/02/27 职场文书
《家》读后感:万惜拯救,冷暖自知
2019/09/25 职场文书
pytorch中Schedule与warmup_steps的用法说明
2021/05/24 Python
手把手教你用SpringBoot将文件打包成zip存放或导出
2021/06/11 Java/Android
Innodb存储引擎中的后台线程详解
2022/04/03 MySQL