利用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函数)
Oct 09 PHP
xajax写的留言本
Nov 25 PHP
PHP通过iconv将字符串从GBK转换为UTF8字符集
Jul 18 PHP
php中数组首字符过滤功能代码
Jul 31 PHP
destoon实现资讯信息前面调用它所属分类的方法
Jul 15 PHP
PHP中的output_buffering详细介绍
Sep 27 PHP
PHP给文字内容中的关键字进行套红处理
Apr 12 PHP
php实现文件管理与基础功能操作
Mar 21 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
May 23 PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
Jan 04 PHP
如何运行/调试你的PHP代码
Oct 23 PHP
php去除数组中为0的元素的实例分析
Nov 17 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 模拟 asp.net webFrom 按钮提交事件的思路及代码
2013/12/02 PHP
PHP定时更新程序设计思路分享
2014/06/10 PHP
PHP中file_exists函数不支持中文名的解决方法
2014/07/26 PHP
PHP图片加水印实现方法
2016/05/06 PHP
PHP+Mysql无刷新问答评论系统(源码)
2016/12/20 PHP
显示、隐藏密码
2006/07/01 Javascript
node.js实现多图片上传实例
2014/06/03 Javascript
百度地图自定义控件分享
2015/03/04 Javascript
JavaScript实现的简单拖拽效果
2015/06/01 Javascript
js闭包用法实例详解
2016/12/13 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
jQuery EasyUI 组件加上“清除”功能实例详解
2017/04/11 jQuery
Angular4 中常用的指令入门总结
2017/06/12 Javascript
Vue.js划分组件的方法
2017/10/29 Javascript
帝国cms首页列表页实现点赞功能
2017/10/30 Javascript
JS函数节流和函数防抖问题分析
2017/12/18 Javascript
vue动态绑定class的几种常用方式小结
2019/05/21 Javascript
es6 for循环中let和var区别详解
2020/01/12 Javascript
Antd中单个DatePicker限定时间输入范围操作
2020/10/29 Javascript
Jquery Fade用法详解
2020/11/06 jQuery
Javascript中的奇葩知识,你知道吗?
2021/01/25 Javascript
Python 解析XML文件
2009/04/15 Python
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
Python使用socketServer包搭建简易服务器过程详解
2020/06/12 Python
python GUI计算器的实现
2020/10/09 Python
div或img图片高度随宽度自适应的方法
2020/02/06 HTML / CSS
缅甸网上购物:Shop.com.mm
2017/12/05 全球购物
央视元宵晚会主持串词
2014/03/25 职场文书
产品设计开发计划书
2014/05/07 职场文书
超市采购员岗位职责
2015/04/07 职场文书
交通肇事罪辩护词
2015/05/21 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书
python 模块重载的五种方法
2021/04/24 Python
Pygame Event事件模块的详细示例
2021/11/17 Python
详解如何使用Nginx解决跨域问题
2022/05/06 Servers
MySQL优化之慢日志查询
2022/06/10 MySQL