我正在使用HttpListener
。但是,我只想处理来自本地的请求,而不是来自其他计算机/服务器的请求。
我如何以编程方式验证传入的请求是否是本地的?我需要使用一些HttpListenerRequest
成员吗?
答案 0 :(得分:5)
HttpListenerRequest
有一个属性IsLocal
,它也应提供此信息。但是,它正在我的计算机上返回false
。反映到源代码中,似乎这是因为IsLocal
属性使用代码:
return this.LocalEndPoint.Address == this.RemoteEndPoint.Address;
或许它应该使用(不可访问的)InternalIsLocal
属性中的代码:
return this.LocalEndPoint.Address.Equals(this.RemoteEndPoint.Address);
(对于我的情况,此表达式返回true
)。使用此方法可能更为可取,因此您的代码不依赖于IPv4地址,因为转换为IPv6。
答案 1 :(得分:1)
如果请求的远程地址等于127.0.0.1
,请与RemoteEndPoint
property核对。