利用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 相关文章推荐
JAVA/JSP学习系列之六
Oct 09 PHP
PHP 程序员应该使用的10个组件
Oct 31 PHP
让PHP COOKIE立即生效,不用刷新就可以使用
Mar 09 PHP
PHP 常用数组内部函数(Array Functions)介绍
Jun 05 PHP
基于PHP magic_quotes_gpc的使用方法详解
Jun 24 PHP
php使用curl抓取qq空间的访客信息示例
Feb 28 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
Apr 29 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
Feb 10 PHP
php设计模式之单例模式实例分析
Feb 25 PHP
PHP实现删除字符串中任何字符的函数
Aug 11 PHP
PHP单例模式详解及实例代码
Dec 21 PHP
浅析PHP中的闭包和匿名函数
Dec 25 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 session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
2009/11/27 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
网上应用的一个不错common.js脚本
2007/08/08 Javascript
一个原生的用户等级的进度条
2010/07/03 Javascript
深入分析js的冒泡事件
2014/12/05 Javascript
Js制作点击输入框时默认文字消失的效果
2015/09/05 Javascript
JS实现两周内自动登录功能
2017/03/23 Javascript
Angularjs根据json文件动态生成路由状态的实现方法
2017/04/17 Javascript
微信小程序 密码输入(源码下载)
2017/06/27 Javascript
vue.js学习之vue-cli定制脚手架详解
2017/07/02 Javascript
layui默认选中table的CheckBox复选框方法
2019/09/19 Javascript
浅谈Layui的eleTree树式选择器使用方法
2019/09/25 Javascript
vue中keep-alive内置组件缓存的实例代码
2020/04/16 Javascript
vue 动态添加class,三个以上的条件做判断方式
2020/11/02 Javascript
JS实现购物车基本功能
2020/11/08 Javascript
Node快速切换版本、版本回退(降级)、版本更新(升级)
2021/01/07 Javascript
Python 制作糗事百科爬虫实例
2016/09/22 Python
动态规划之矩阵连乘问题Python实现方法
2017/11/27 Python
win7+Python3.5下scrapy的安装方法
2018/07/31 Python
Python获取二维数组的行列数的2种方法
2020/02/11 Python
keras的三种模型实现与区别说明
2020/07/03 Python
使用python编写一个语音朗读闹钟功能的示例代码
2020/07/14 Python
CSS3 绘制BMW logo实的现代码
2013/04/25 HTML / CSS
利用css3实现的简单的鼠标悬停按钮
2014/11/04 HTML / CSS
CSS3 text-shadow实现文字阴影效果
2016/02/24 HTML / CSS
Html5如何唤起百度地图App的方法
2019/01/27 HTML / CSS
html5的canvas实现3d雪花飘舞效果
2013/12/27 HTML / CSS
兼职学生的自我评价
2013/11/24 职场文书
小学岗位竞聘方案
2014/01/22 职场文书
大学生怎样写好自荐信
2014/02/25 职场文书
公司委托书范本
2014/04/04 职场文书
优秀乡村医生事迹材料
2014/05/28 职场文书
公证委托书
2014/08/01 职场文书
赔偿协议书范本
2014/09/12 职场文书
2014年合同管理工作总结
2014/12/02 职场文书