当前位置:  编程技术>php

PHP实例分享判断客户端是否使用代理服务器及其匿名级别

    来源: 互联网  发布时间:2014-08-26

    本文导语:  要判断客户端是否使用代理服务器,可以从客户端所发送的环境变量信息来判断。 具体来说,就是看HTTP_VIA字段,如果这个字段设置了,说明客户端使用了代理服务器。 匿名级别可以参考下表来判断。 给出一个应用例子,可...

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

具体来说,就是看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实现socket实现客户端和服务端数据通信源代码
  • PHP 的 HTTP 客户端库 PHP Buzz
  • Solr的PHP客户端 php_solr
  • PHP 的 HTTP 客户端库 Requests(PHP)
  • PHP的MSN客户端库 PHP MSN Class
  • Redis的PHP客户端包 Predis
  • PHP的XML-RPC服务器和客户端库 Ripcord
  • Cassandra的PHP客户端库 phpcassa
  • Redis的PHP客户端 Rediska
  • linux下安装php的memcached客户端
  • php获取远程客户端真实ip地址
  • php如何获取客户端分辨率?实例教程
  • PHP的HTTP客户端 phpWebHacks
  • php函数获取在线ip与客户端ip
  • php获取客户端网卡mac物理地址
  • php获取服务器端mac和客户端mac的地址支持WIN/LINUX
  • php/js获取客户端mac地址示例代码
  • PHP获取客户端真实IP地址的5种情况分析和实现代码
  • php socket客户端及服务器端应用实例
  • php获取客户端IP地址多种方法
  • php获取浏览器信息与客户端ip地址等信息
  • php session_id()函数介绍及代码实例
  • php 小数点取法实例总结
  • php生成透明背景图片实例
  • php防止sql注入代码实例
  • php逐字拆分字符串 php字符串拆分实例
  • php解析json数据实例
  • php定界符<<<使用技巧和实例
  • php读取sqlite数据库入门实例
  • PHP文件锁定写入实例解析
  • php读取mysql数据库入门实例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 判断php数组维度(php数组长度)的方法
  • php判断字符串是否存在 php字符串检测代码
  • php 判断服务器操作系统的类型
  • PHP判断文章里是否有图片的简单方法
  • PHP获取每周六日期 php判断奇数偶数
  • php 判断字符串是否包含html标签
  • php判断文章中是否有图片简单示例
  • PHP判断是否有Get参数的方法
  • php怎么判断gif图片是否为动画?
  • php如何判断字符串是否存在
  • php判断日期格式是否正确的小例子
  • php判断正常访问和外部访问的示例
  • php判断字符与字符串的包含方法属性
  • php判断时间段二种方法
  • php判断字符串是否全是中文或含有中文
  • CMS中PHP判断系统是否已经安装的方法示例
  • PHP判断指定时间段的2个方法
  • php 判断字符串中是否包含html标签
  • PHP判断变量是否为0的方法
  • php 判断网页是否是utf8编码的方法
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • IIS7配置PHP图解(IIS7+PHP_5.2.17/PHP_5.3.5)
  • PHP 5.4.19 和 PHP 5.5.3 发布及下载地址
  • php输入流php://input使用示例(php发送图片流到服务器)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • PHP转换器 HipHop for PHP
  • PHP去除html标签,php标记及css样式代码参考
  • PHP 框架 Pop php
  • PHP 'ext/soap/php_xml.c'不完整修复存在多个任意文件泄露漏洞
  • PHP的JavaScript框架 PHP.JS
  • php通过socket_bind()设置IP地址代码示例


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3