PHP实现检测客户端是否使用代理服务器及其匿名级别

 更新时间:2015年01月07日 11:21:04   投稿:hebedich  
这篇文章主要介绍了PHP实现检测客户端是否使用代理服务器及其匿名级别,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

要判断客户端是否使用代理服务器,可以从客户端所发送的环境变量信息来判断。

具体来说,就是看HTTP_VIA字段,如果这个字段设置了,说明客户端使用了代理服务器。

匿名级别可以参考下表来判断。

给出一个应用例子,可以挂上代理试试效果: http://ip.mixsec.org/

一、没有使用代理服务器的情况:

     REMOTE_ADDR = 您的 IP
     HTTP_VIA = 没数值或不显示
     HTTP_X_FORWARDED_FOR = 没数值或不显示

二、使用透明代理服务器的情况:Transparent Proxies

    REMOTE_ADDR = 代理服务器 IP
    HTTP_VIA = 代理服务器 IP (补充:这个字段由代理服务器填充,有时会填充网关信息等)
    HTTP_X_FORWARDED_FOR = 您的真实 IP
    这类代理服务器还是将您的信息转发给您的访问对象,无法达到隐藏真实身份的目的。

三、使用普通匿名代理服务器的情况:Anonymous Proxies

    REMOTE_ADDR = 代理服务器 IP
    HTTP_VIA = 代理服务器 IP (补充:这个字段由代理服务器填充,有时会填充网关信息等)
    HTTP_X_FORWARDED_FOR = 代理服务器 IP
    隐藏了您的真实IP,但是向访问对象透露了您是使用代理服务器访问他们的。

四、使用欺骗性代理服务器的情况:Distorting Proxies

    REMOTE_ADDR = 代理服务器 IP
    HTTP_VIA = 代理服务器 IP  (补充:这个字段由代理服务器填充,有时会填充网关信息等)
    HTTP_X_FORWARDED_FOR = 随机的 IP
    告诉了访问对象您使用了代理服务器,但编造了一个虚假的随机IP代替您的真实IP欺骗它。

五、使用高匿名代理服务器的情况:High Anonymity Proxies

   REMOTE_ADDR = 代理服务器 IP
   HTTP_VIA = 没数值或不显示
   HTTP_X_FORWARDED_FOR = 没数值或不显示
   完全用代理服务器的信息替代了您的所有信息,就象您就是完全使用那台代理服务器直接访问对象。

除此之外,可以通过proxy judges总 结其他一些可供参考的判定信息,一遍于在实践中加以利用。

最后写一个php例子,仅供大家参考:

复制代码 代码如下:

if(!empty($_SERVER['HTTP_VIA']))    //使用了代理
{
    if(!isset($_SERVER['HTTP_X_FORWARDED_FOR']))
    {
        //Anonymous Proxies    普通匿名代理服务器
        //代理IP地址为 $_SERVER['REMOTE_ADDR']
   }
   else
   {
        //Transparent Proxies 透明代理服务器
        //代理IP地址为 $_SERVER['REMOTE_ADDR']
        //真实ip地址为 $_SERVER['HTTP_X_FORWARDED_FOR']
   }
}
else    //没有代理或者是高匿名代理
{
    //真实ip地址为 $_SERVER['REMOTE_ADDR']
}

相关文章

  • PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例

    PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例

    这篇文章主要介绍了PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例,CURLOPT_RETURNTRANSFER参数的作用是把CRUL获取的内容赋值到变量,需要的朋友可以参考下
    2015-02-02
  • PHP实现的登录,注册及密码修改功能分析

    PHP实现的登录,注册及密码修改功能分析

    这篇文章主要介绍了PHP实现的登录,注册及密码修改功能,结合实例形式分析了php实现登陆功能的相关数据库操作、ajax交互、数据验证及验证码相关操作技巧,需要的朋友可以参考下
    2016-11-11
  • 浅谈php://filter的妙用

    浅谈php://filter的妙用

    php://filter是PHP中独有的协议,利用这个协议可以创造很多“妙用”,有需要的朋友们学习下
    2019-03-03
  • PHP中使用break跳出多重循环代码实例

    PHP中使用break跳出多重循环代码实例

    这篇文章主要介绍了PHP中使用break跳出多重循环代码实例,本文直接给出代码,代码简洁易一懂,一看就明白了,需要的朋友可以参考下
    2015-01-01
  • PHP实现二维数组根据key进行排序的方法

    PHP实现二维数组根据key进行排序的方法

    这篇文章主要介绍了PHP实现二维数组根据key进行排序的方法,涉及php数组的遍历与排序相关操作技巧,需要的朋友可以参考下
    2016-12-12
  • php 信息采集程序代码

    php 信息采集程序代码

    通过检测,$c已经是内容页的数据流了,可是$pc这个的正则表达式为什么只匹配<这个字符其他的都没有呢
    2009-03-03
  • php读取xml实例代码

    php读取xml实例代码

    php读取xml实例代码,需要的朋友可以参考下。
    2010-01-01
  • php递归删除目录与文件的方法

    php递归删除目录与文件的方法

    这篇文章主要介绍了php递归删除目录与文件的方法,涉及递归算法及php操作文件的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-01-01
  • 利用PHP实现一个MySQL备份和恢复程序

    利用PHP实现一个MySQL备份和恢复程序

    由于客户用的阿里云将要到期,需要把项目和阿里云上的数据库都转到政府云,数据肯定要转过去,但是阿里云导出数据有数量限制,导出不全,所以就要程序执行下,生成sql文件,然后导入政府云数据库,下面分享下具体实现过程
    2023-09-09
  • PHP封装的Twitter访问类实例

    PHP封装的Twitter访问类实例

    这篇文章主要介绍了PHP封装的Twitter访问类,通过curl调用实现针对Twitter的常用访问功能,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07

最新评论


http://www.vxiaotou.com