2012-02-09 22 views
0

我想确定给定IP地址的代理服务器是透明的还是匿名的。透明代理通过头像HTTP_X_FORWARDED_FOR或HTTP_VIA连接到具有真实IP的网站。我想检查这些代理,但我发现所有解决方案都是在服务器端开发的,以测试传入连接的代理性。我的计划是通过代理向示例页面发出Web请求。如何检查代理发送的头文件,最好使用WebRequest类?检查代理服务器类型

编辑:那么有没有一些免费的网络API,将允许我这样做?我并不热衷于在我自己的小型服务器上设置脚本,这些脚本将被请求轰炸。

+0

如果你想有没有回答你的阅读问题的人,这可能不是一个好主意,关闭它,改变它。改为提出一个新问题。 – 2012-02-09 15:05:49

回答

0

这在技术上是不可能的,因为客户端只能看到代理返回给客户端 - 代理服务器可以在与目标服务器通信时进行任何操作并转换请求和服务器的响应。 。

要真正知道代理做什么,你需要看到什么服务器获取并发送回不从代理的任何干扰......

0

所有解决方案都是服务器端的原因是您所谈论的标头只会从代理服务器传递到服务器,并且永远不会再回到客户端。

换句话说,如果您计划在代理到服务器的请求中检查HTTP标头,您需要检查服务器端(作为您找到的解决方案)或主动将它们传回给回应客户检查。

无论哪种方式,你不能只是向随机页面发出请求,并检查服务器获取的标题,服务器需要以某种方式参与。

1

只要你不需要这个头。我可以通过向任何get-my-IP站点发送请求来检查代理的透明度,如果它返回我的IP,那么它是透明的。如果不是那么这个代理是匿名的。因此,步骤是:

  1. 发送请求到任何获得-MY-IP的网站,无需代理

  2. 从响应提取IP作为我的本地IP地址

  3. 发送新的请求任何GET-我-IP的网站与代理从响应

  4. 提取的IP,并与我的本地IP比较(步骤2)

  5. if(LocalIp==ProxyIp)则代理是透明否则为匿名