PHP实现检测客户端是否使用代理服务器及其匿名级别 |
本文标签:php,检测,代理服务器 要判断客户端是否使用代理服务器,可以从客户端所发送的环境变量信息来判断 。 具体来说,就是看HTTP_VIA字段,如果这个字段设置了,说明客户端使用了代理服务器 。 匿名级别可以参考下表来判断 。 给出一个应用例子,可以挂上代理试试效果: http://ip.mixsec.org/ 一、没有使用代理服务器的情况: REMOTE_ADDR = 您的 IP 二、使用透明代理服务器的情况:Transparent Proxies REMOTE_ADDR = 代理服务器 IP 三、使用普通匿名代理服务器的情况:Anonymous Proxies REMOTE_ADDR = 代理服务器 IP 四、使用欺骗性代理服务器的情况:Distorting Proxies REMOTE_ADDR = 代理服务器 IP 五、使用高匿名代理服务器的情况:High Anonymity Proxies REMOTE_ADDR = 代理服务器 IP 除此之外,可以通过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] } |