利用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 相关文章推荐
将OICQ数据转成MYSQL数据
Oct 09 PHP
php操作excel文件 基于phpexcel
Jul 02 PHP
用来解析.htgroup文件的PHP类
Sep 05 PHP
Session服务器配置指南与使用经验的深入解析
Jun 17 PHP
PHP随机生成随机个数的字母组合示例
Jan 14 PHP
php最简单的删除目录与文件实现方法
Nov 28 PHP
PHP实现基于文本的摩斯电码生成器
Jan 11 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
Oct 13 PHP
学习thinkphp5.0验证类使用方法
Nov 16 PHP
thinkphp5 加载静态资源路径与常量的方法
Dec 24 PHP
在laravel中使用with实现动态添加where条件
Oct 10 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检查日期函数checkdate用法实例
2015/03/19 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
jqeury eval将字符串转换json的方法
2011/01/20 Javascript
基于jQuery的图片左右无缝滚动插件
2012/05/23 Javascript
jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
2014/06/06 Javascript
JavaScript字符串对象substr方法入门实例(用于截取字符串)
2014/10/16 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
JS处理json日期格式化问题
2015/10/01 Javascript
JQuery 动态生成Table表格实例代码
2016/12/02 Javascript
jQuery事件详解
2017/02/23 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
2017/04/12 Javascript
微信小程序实现轮播图效果
2017/09/07 Javascript
jquery实现图片跟随鼠标的实例
2017/10/17 jQuery
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
2018/07/19 Javascript
详解vuex commit保存数据技巧
2018/12/25 Javascript
JavaScript对象的特性与实践应用深入详解
2018/12/30 Javascript
vue.js路由mode配置之去掉url上默认的#方法
2019/11/01 Javascript
js实现表格数据搜索
2020/08/09 Javascript
vue使用exif获取图片经纬度的示例代码
2020/12/11 Vue.js
JavaScript实现瀑布流布局的3种方式
2020/12/27 Javascript
[01:46]辉夜杯—打造中国DOTA新格局
2015/12/25 DOTA
python使用urllib模块和pyquery实现阿里巴巴排名查询
2014/01/16 Python
Python中optparse模块使用浅析
2015/01/01 Python
Python 16进制与中文相互转换的实现方法
2018/07/09 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
2019/10/18 Python
Python使用sqlite3模块内置数据库
2020/05/07 Python
关于h5中的fetch方法解读(小结)
2017/11/15 HTML / CSS
倩碧香港官方网站:Clinique香港
2017/11/13 全球购物
户籍证明书标准模板
2014/09/10 职场文书
四风专项整治工作情况汇报
2014/10/28 职场文书
学习雷锋精神活动总结
2015/02/06 职场文书
当幸福来敲门英文观后感
2015/06/01 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书
2019学校请假条格式及范文
2019/06/25 职场文书
管理者日常工作必备:22条企业管理流程模板!
2019/07/12 职场文书
优胜劣汰,强者为王——读《鲁滨逊漂流记》有感
2019/08/15 职场文书