利用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截取中文字符串的问题
Jul 12 PHP
PHP调用MySQL的存储过程的实现代码
Aug 12 PHP
php 计算两个时间戳相隔的时间的函数(小时)
Dec 18 PHP
PHP框架Swoole定时器Timer特性分析
Aug 19 PHP
Yii使用ajax验证显示错误messagebox的解决方法
Dec 03 PHP
thinkphp缓存技术详解
Dec 09 PHP
列举PHP的Yii 2框架的开发优势
Jul 03 PHP
php远程下载类分享
Apr 13 PHP
smarty自定义函数用法示例
May 20 PHP
PHP利用正则表达式将相对路径转成绝对路径的方法示例
Feb 28 PHP
thinkphp框架page类与bootstrap分页(美化)
Jun 25 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
Jan 23 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
isset和empty的区别
2007/01/15 PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
2012/10/08 PHP
PHP删除数组中空值的方法介绍
2014/04/14 PHP
PHP多线程类及用法实例
2014/12/03 PHP
php生成二维码
2015/08/10 PHP
使用PHP如何实现高效安全的ftp服务器(二)
2015/12/30 PHP
php打包压缩文件之ZipArchive方法用法分析
2016/04/30 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
2016/12/15 PHP
通过php动态传数据到highcharts
2017/04/05 PHP
js定时器的使用(实例讲解)
2014/01/06 Javascript
IE8下Jquery获取select选中的值post到后台报错问题
2014/07/02 Javascript
javascript最基本的函数汇总
2015/06/25 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
Javascript基础教程之比较null和undefined值
2016/05/16 Javascript
AngularJS ng-bind-html 指令详解及实例代码
2016/07/30 Javascript
jQuery基于排序功能实现上移、下移的方法
2016/11/26 Javascript
JS实现颜色梯度与渐变效果完整实例
2016/12/30 Javascript
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
webpack4简单入门实例
2018/09/06 Javascript
js利用iframe实现选项卡效果
2020/08/09 Javascript
Openlayers测量距离与面积的实现方法
2020/09/25 Javascript
[02:47]DOTA2英雄基础教程 野性怒吼兽王
2013/12/05 DOTA
[05:03]显微镜下的DOTA2第十期——Ti3豪之超神幽鬼
2014/06/23 DOTA
Django与JS交互的示例代码
2017/08/23 Python
Python 实现一行输入多个值的方法
2018/04/21 Python
对python pandas 画移动平均线的方法详解
2018/11/28 Python
python中Lambda表达式详解
2019/11/20 Python
Python3 虚拟开发环境搭建过程(图文详解)
2020/01/06 Python
用python解压分析jar包实例
2020/01/16 Python
详解纯CSS3制作的20种loading动效
2017/07/05 HTML / CSS
意大利奢侈品零售商:ilDuomo Novara
2019/09/11 全球购物
园林技术个人的自我评价
2014/01/08 职场文书
体育教学随笔感言
2014/02/24 职场文书
2014年实习班主任工作总结
2014/11/08 职场文书
学校元旦晚会开场白
2014/12/14 职场文书
2016年青少年禁毒宣传教育活动总结(学校)
2016/04/05 职场文书