我在用着 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。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top