Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检查是否从代理请求页面?_C#_Asp.net Mvc 3_Proxy_Request Headers - Fatal编程技术网

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

C# 如何检查是否从代理请求页面?,c#,asp.net-mvc-3,proxy,request-headers,C#,Asp.net Mvc 3,Proxy,Request Headers,我有一页:http://example/mypage 还有一个代理向我的页面发出请求: http://proxy/?url=http://example/mypage 如何确定页面是从没有代理的空白页面打开的,还是由代理请求的?一般来说,您不能。当请求到达HTTP服务器时,关于客户端的唯一信息是其IP地址以及客户端决定在请求头中发送给您的任何其他信息。最好是在某种数据库中查找IP地址,看看它是否是已知的代理 如果您正在寻找一个期望在请求头中传递特定信息的特定代理,那完全是另外一回事。但一般来说

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

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

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

如何确定页面是从没有代理的空白页面打开的,还是由代理请求的?

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


如果您正在寻找一个期望在请求头中传递特定信息的特定代理,那完全是另外一回事。但一般来说,我可以从我的客户端向您发送一个Web请求,使其看起来像一个代理,或者我可以从代理发送一个请求,使其看起来像是直接来自客户端。

我怀疑没有可靠的方法可以做到这一点,因为匿名代理试图。。。嗯,匿名。。。您可以尝试检查
HttpContext.Request.urlReferer
是否有一些值,但这并不可靠。您可以对照一些已知代理IP地址的数据库进行检查,但我怀疑这也不太可靠。

可能重复@Marc B:链接的问题是关于检测本地机器上是否配置了代理,我认为这个问题是问如何检测是否使用代理显示其网页。