利用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表单转换textarea换行符的方法
Sep 10 PHP
PHP gbk环境下json_dencode传送来的汉字
Nov 13 PHP
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
May 08 PHP
使用Sphinx对索引进行搜索
Jun 25 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
Sep 10 PHP
PHP操作文件的一些基本函数使用示例
Nov 18 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
Nov 27 PHP
PHP简单的MVC框架实现方法
Dec 01 PHP
PHP响应post请求上传文件的方法
Dec 17 PHP
详解WordPress中给链接添加查询字符串的方法
Dec 18 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
Oct 30 PHP
关于PHP中interface的用处详解
Jul 26 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
DOTA2 1月28日更新:监管系统降临刀塔世界
2021/01/28 DOTA
PHP函数http_build_query使用详解
2014/08/20 PHP
PHP实现Javascript中的escape及unescape函数代码分享
2015/02/10 PHP
YII视图整合kindeditor扩展的方法
2016/07/13 PHP
PHP XML Expat解析器知识点总结
2019/02/15 PHP
一些有关检查数据的JS代码
2006/09/07 Javascript
extjs 的权限问题 要求控制的对象是 菜单,按钮,URL
2010/03/09 Javascript
基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
2011/05/24 Javascript
jquery选择符快速提取web表单数据示例
2014/03/27 Javascript
jQuery插件分享之分页插件jqPagination
2014/06/06 Javascript
JavaScript实现动态添加,删除行的方法实例详解
2015/07/02 Javascript
EasyUI闪屏EasyUI页面加载提示(原理+代码+效果图)
2016/02/21 Javascript
JavaScript语言精粹经典实例(整理篇)
2016/06/07 Javascript
VUEJS实战之修复错误并且美化时间(2)
2016/06/13 Javascript
浅谈jquery中next与siblings的区别
2016/10/27 Javascript
vue-cli构建项目下使用微信分享功能
2018/05/28 Javascript
React中如何引入Angular组件详解
2018/08/09 Javascript
微信小程序实用代码段(收藏版)
2019/12/17 Javascript
ES6 Generator基本使用方法示例
2020/06/06 Javascript
[01:03]DOTA2新的征程 你的脚印值得踏上
2014/08/13 DOTA
[58:32]EG vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
pandas 实现字典转换成DataFrame的方法
2018/07/04 Python
python爬取cnvd漏洞库信息的实例
2019/02/14 Python
将python运行结果保存至本地文件中的示例讲解
2019/07/11 Python
详解Python实现进度条的4种方式
2020/01/15 Python
Python sys模块常用方法解析
2020/02/20 Python
Python 如何对文件目录操作
2020/07/10 Python
使用AJAX和Django获取数据的方法实例
2020/10/25 Python
收集的22款给力的HTML5和CSS3帮助工具
2012/09/14 HTML / CSS
adidas旗下高尔夫装备供应商:TaylorMade Golf(泰勒梅高尔夫)
2016/08/28 全球购物
美国领先的宠物用品和宠物食品零售商:Petco
2020/10/28 全球购物
2014年迎新年活动方案
2014/02/19 职场文书
积极向上的团队口号
2014/06/06 职场文书
机关干部作风建设剖析材料
2014/10/23 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
python图片灰度化处理的几种方法
2021/06/23 Python