利用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 Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
Jun 17 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
Jun 13 PHP
解析PHP工厂模式的好处
Jun 18 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
Mar 20 PHP
php类中的各种拦截器用法分析
Nov 03 PHP
php查看网页源代码的方法
Mar 13 PHP
学习php设计模式 php实现适配器模式
Dec 07 PHP
CodeIgniter配置之database.php用法实例分析
Jan 20 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
Mar 07 PHP
Yii2如何批量添加数据
May 17 PHP
PHP实现15位身份证号转18位的方法分析
Oct 16 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
Feb 16 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
关于时间计算的结总
2006/12/06 PHP
自动生成文章摘要的代码[PHP 版本]
2007/03/20 PHP
php中mysql连接方式PDO使用详解
2015/02/25 PHP
PHP中isset与array_key_exists的区别实例分析
2015/06/02 PHP
纯PHP代码实现支付宝批量付款
2015/12/24 PHP
PHP扩展mcrypt实现的AES加密功能示例
2019/01/29 PHP
jquery常用技巧及常用方法列表集合
2011/04/06 Javascript
两种方法实现文本框输入内容提示消失
2013/03/17 Javascript
javascript去掉前后空格的实例
2013/11/07 Javascript
Javscript删除数组中指定元素并返回新数组
2014/03/06 Javascript
jquery实现炫酷的叠加层自动切换特效
2015/02/01 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
Angular表单验证实例详解
2016/10/20 Javascript
浅谈js在html中的加载执行顺序,多个jquery ready执行顺序
2016/11/26 Javascript
限时抢购-倒计时的完整实例(分享)
2017/09/17 Javascript
JavaScript 日期时间选择器一些小结
2018/04/02 Javascript
JS原生带缩略图的图片切换效果
2018/10/10 Javascript
vue实现的微信机器人聊天功能案例【附源码下载】
2019/02/18 Javascript
Vue 动态添加路由及生成菜单的方法示例
2019/06/20 Javascript
Vue如何跨组件传递Slot的实现
2020/12/14 Vue.js
[37:03]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第二场 12.16
2020/12/18 DOTA
Python实现多线程下载文件的代码实例
2014/06/01 Python
Python实现ssh批量登录并执行命令
2016/10/25 Python
python实现浪漫的烟花秀
2019/01/30 Python
详解Python中的正斜杠与反斜杠
2019/08/09 Python
基于Html5实现的react拖拽排序组件示例
2018/08/13 HTML / CSS
Under Armour安德玛荷兰官网:美国高端运动科技品牌
2019/07/10 全球购物
Clos19英国:高档香槟、葡萄酒和烈酒在线购物平台
2020/07/10 全球购物
英国鲜花递送:Blossoming Gifts
2020/07/10 全球购物
医学专业五年以上个人求职信
2013/12/03 职场文书
2019财务转正述职报告
2019/06/27 职场文书
李白经典诗之一:全文无一“月”字,却句句有月
2019/07/12 职场文书
go语言中http超时引发的事故解决
2021/06/02 Golang
Java9新特性之Module模块化编程示例演绎
2022/03/16 Java/Android
Python数据可视化之Seaborn的安装及使用
2022/04/19 Python