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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

PHP:判断客户端是否使用代理服务器及其匿名级别要判断客户端是否使用代理服务器,可以从客户端所发送的环境变量信息来判断。具体来说,就是看HTTP_VIA字段,如果这个字段设置了,说明客户端使用了代理服务器。匿名级别可以参考下表来判断。给出一个应用例子,可以挂上代理试试效果:一、没有使用代理服务器的情况:REMOTE_ADDR=您的IPHTTP_VIA=没数值或不显示HTTP_X_FORWARDED_FOR=没数值或不显示二、使用透明代理服务器的情况:TransparentProxiesREMOTE_ADDR=代理服务器IPHTTP_VIA=代理服务器IP(补充:这个字段由代理服务器填充,有时会填充网关信息等)HTTP_X_FORWARDED_FOR=您的真实IP这类代理服务器还是将您的信息转发给您的访问对象,无法达到隐藏真实身份的目的。三、使用普通匿名代理服务器的情况:AnonymousProxiesREMOTE_ADDR=代理服务器IPHTTP_VIA=代理服务器IP(补充:这个字段由代理服务器填充,有时会填充网关信息等)HTTP_X_FORWARDED_FOR=代理服务器IP隐藏了您的真实IP,但是向访问对象透露了您是使用代理服务器访问他们的。四、使用欺骗性代理服务器的情况:DistortingProxiesREMOTE_ADDR=代理服务器IPHTTP_VIA=代理服务器IP(补充:这个字段由代理服务器填充,有时会填充网关信息等)HTTP_X_FORWARDED_FOR=随机的IP告诉了访问对象您使用了代理服务器,但编造了一个虚假的随机IP代替您的真实IP欺骗它。五、使用高匿名代理服务器的情况:HighAnonymityProxiesREMOTE_ADDR=代理服务器IPHTTP_VIA=没数值或不显示HTTP_X_FORWARDED_FOR=没数值或不显示完全用代理服务器的信息替代了您的所有信息,就象您就是完全使用那台代理服务器直接访问对象。除此之外,可以通过proxyjudges总结其他一些可供参考的判定信息,一遍于在实践中加以利用。最后写一个php例子,仅供大家参考:if(!empty($_SERVER['HTTP_VIA']))//使用了代理{if(!isset($_SERVER['HTTP_X_FORWARDED_FOR'])){//AnonymousProxies普通匿名代理服务器//代理IP地址为$_SERVER['REMOTE_ADDR']}else{//TransparentProxies透明代理服务器//代理IP地址为$_SERVER['REMOTE_ADDR']//真实ip地址为$_SERVER['HTTP_X_FORWARDED_FOR']}}else//没有代理或者是高匿名代理{//真实ip地址为$_SERVER['REMOTE_ADDR']}转载自:

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功