使用HTTPLISTENER时,如何确定HTTP请求是本地的
-
25-09-2019 - |
题
我在用着 HttpListener
. 。但是,我只想处理本地提出的请求,而不是来自另一台计算机/服务器。
我将如何在编程上验证传入的请求是否肯定是本地的?我需要使用一些 HttpListenerRequest
成员?
解决方案
检查 RemoteEndPoint
财产 如果请求的远程地址等于 127.0.0.1
.
其他提示
这 HttpListenerRequest
有一个财产 IsLocal
这也应该提供此信息。但是,它正在返回 false
在我的电脑上。反思源代码,看来这是因为 IsLocal
属性使用代码:
return this.LocalEndPoint.Address == this.RemoteEndPoint.Address;
当它应该在(无法访问)中使用代码时 InternalIsLocal
属性是:
return this.LocalEndPoint.Address.Equals(this.RemoteEndPoint.Address);
(此表达式返回 true
对于我的情况)。使用此方法可能是可取的,因此您的代码不依赖于IPv4地址,因为过渡到IPv6。
不隶属于 StackOverflow