利用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 02 PHP
PHP求最大子序列和的算法实现
Jun 24 PHP
求PHP数组最大值,最小值的代码
Oct 31 PHP
zend framework框架中url大小写问题解决方法
Aug 19 PHP
PHP实现通过中文字符比率来判断垃圾评论的方法
Oct 20 PHP
php从给定url获取文件扩展名的方法
Mar 14 PHP
微信公众平台实现获取用户OpenID的方法
Apr 15 PHP
PHP弱类型的安全问题详细总结
Sep 25 PHP
PHP基于redis计数器类定义与用法示例
Feb 08 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
Mar 26 PHP
为你的 Laravel 验证器加上多验证场景的实现
Apr 07 PHP
WordPress免插件实现面包屑导航的示例代码
Aug 20 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
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
PHP实现批量上传单个文件
2015/12/29 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
2016/01/08 PHP
详解PHP数据压缩、加解密(pack, unpack)
2016/12/17 PHP
PHP开发APP端微信支付功能
2017/02/17 PHP
PHP 观察者模式深入理解与应用分析
2019/09/25 PHP
js+html5获取用户地理位置信息并在Google地图上显示的方法
2015/06/05 Javascript
JS Array创建及concat()split()slice()的使用方法
2016/06/03 Javascript
js判断输入字符串是否为空、空格、null的方法总结
2016/06/14 Javascript
详解 vue.js用法和特性
2017/10/15 Javascript
详解Angular6.0使用路由步骤(共7步)
2018/06/29 Javascript
解决vuex刷新状态初始化的方法实现
2019/08/15 Javascript
微信小程序返回箭头跳转到指定页面实例解析
2019/10/08 Javascript
js模拟实现烟花特效
2020/03/10 Javascript
javascript实现前端成语点击验证
2020/06/24 Javascript
JavaScript实现拖动对话框效果的实现代码
2020/10/12 Javascript
Vue使用Element实现增删改查+打包的步骤
2020/11/25 Vue.js
[01:10]3.19DOTA2发布会 三代刀塔人第一代
2014/03/25 DOTA
使用Python编写vim插件的简单示例
2015/04/17 Python
Django与JS交互的示例代码
2017/08/23 Python
Python实现读取txt文件并画三维图简单代码示例
2017/12/09 Python
Python实现的求解最小公倍数算法示例
2018/05/03 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
PyTorch笔记之scatter()函数的使用
2020/02/12 Python
VSCODE配置Markdown及Markdown基础语法详解
2021/01/19 Python
Python抖音快手代码舞(字符舞)的实现方法
2021/02/07 Python
CSS3 box-sizing属性
2009/04/17 HTML / CSS
css3动画事件—webkitAnimationEnd与计时器time事件
2013/01/31 HTML / CSS
HTML5在canvas中绘制复杂形状附效果截图
2014/06/23 HTML / CSS
HomeAway澳大利亚:预订你的度假屋,公寓、度假村、别墅等
2019/02/20 全球购物
澳大利亚家庭花园和DIY工具网店:VidaXL
2019/05/03 全球购物
《雨霖铃》听课反思
2014/02/13 职场文书
个人四风问题对照检查材料
2014/09/26 职场文书
2015年销售部工作总结范文
2015/04/27 职场文书
2016高一新生军训心得体会
2016/01/11 职场文书
Win10 heic文件怎么打开 ? Win10 heic文件打开教程
2022/04/06 数码科技