如何检查是否从代理请求页面?

时间:2011-04-18 22:07:49

标签: c# asp.net-mvc-3 proxy request-headers

我有一个页面:http://example/mypage

还有一个代理向我的页面发出请求:

http://proxy/?url=http://example/mypage

如何在没有代理的情况下查看页面是否正在打开,或者代理是否正在请求该页面?

2 个答案:

答案 0 :(得分:3)

一般情况下,你不能。当请求到达您的HTTP服务器时,您拥有的有关客户端的唯一信息是其IP地址以及客户端决定在请求标头中发送给您的任何其他信息。你能做的最好的事情就是在某种数据库中查找IP地址,看看它是否是一个已知的代理。

如果您正在寻找希望在请求标头中传递特定信息的特定代理,那么完全不同。但总的来说,我可以从我的客户端向您发送Web请求并使其看起来像代理,或者我可以从代理发送请求并使其看起来直接来自客户端。

答案 1 :(得分:2)

我怀疑没有可靠的方法可以做到这一点,因为匿名代理人试图......匿名......您可以尝试检查HttpContext.Request.UrlReferrer是否有某些价值但是赢了是可靠的。您可以检查一些已知代理IP地址的数据库,但我怀疑它也不会非常可靠。