利用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 相关文章推荐
Phpbean路由转发的php代码
Jan 10 PHP
PHP 批量删除 sql语句
Jun 05 PHP
linux下为php添加curl扩展的方法
Jul 29 PHP
thinkphp连贯操作实例分析
Nov 22 PHP
在WordPress中实现发送http请求的相关函数解析
Dec 29 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
Feb 26 PHP
yii2简单使用less代替css示例
Mar 10 PHP
php实现的redis缓存类定义与使用方法示例
Aug 09 PHP
PHP迭代与递归实现无限级分类
Aug 28 PHP
php 广告点击统计代码(php+mysql)
Feb 21 PHP
PHP实现 APP端微信支付功能
Jun 22 PHP
Thinkphp5框架ajax接口实现方法分析
Aug 28 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
laravel model模型处理之修改查询或修改字段时的类型格式案例
2019/10/17 PHP
Javascript中产生固定结果的函数优化技巧
2013/01/16 Javascript
JavaScript遍历table表格中的某行某列并打印其值
2014/07/08 Javascript
基于AngularJS实现页面滚动到底自动加载数据的功能
2015/10/16 Javascript
AngularJS学习笔记之依赖注入详解
2016/05/16 Javascript
JavaScript解八皇后问题的方法总结
2016/06/12 Javascript
html+javascript+bootstrap实现层级多选框全层全选和多选功能
2017/03/09 Javascript
.vue文件 加scoped 样式不起作用的解决方法
2018/05/28 Javascript
微信小程序实现倒计时补零功能
2018/07/09 Javascript
代码实例ajax实现点击加载更多数据图片
2018/10/12 Javascript
浅谈JavaScript 代码整洁之道
2018/10/23 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
2018/11/05 Javascript
vscode 开发Vue项目的方法步骤
2018/11/25 Javascript
vue自动路由-单页面项目(非build时构建)
2019/04/30 Javascript
JS实现拼图游戏
2021/01/29 Javascript
Vue获取页面元素的相对位置的方法示例
2020/02/05 Javascript
extjs4图表绘制之折线图实现方法分析
2020/03/06 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
2020/04/17 Javascript
听歌识曲--用python实现一个音乐检索器的功能
2016/11/15 Python
详解python之多进程和进程池(Processing库)
2017/06/09 Python
python3 读写文件换行符的方法
2018/04/09 Python
pygame实现雷电游戏雏形开发
2018/11/20 Python
Python sklearn KFold 生成交叉验证数据集的方法
2018/12/11 Python
Python字典的核心底层原理讲解
2019/01/24 Python
python实现比较类的两个instance(对象)是否相等的方法分析
2019/06/26 Python
Django 实现图片上传和下载功能
2020/12/31 Python
详解CSS3开启硬件加速的使用和坑
2017/08/21 HTML / CSS
儿科护士自我鉴定
2013/10/14 职场文书
会计实习生自我鉴定
2013/12/12 职场文书
文明礼仪伴我行演讲稿
2014/05/12 职场文书
英语三分钟演讲稿
2014/08/19 职场文书
史上最牛辞职信
2015/05/13 职场文书
高中班主任培训心得体会
2016/01/07 职场文书
oracle连接ODBC sqlserver数据源的详细步骤
2021/07/25 Oracle
对讲机知识
2022/04/07 无线电
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle