如果正在从HttpContext
的集合中提取HOST
的值,是否有方法确定返回的值是DNS解析名称还是直接IP地址?确定是否解析主机DNS名称或IP
使用示例
string host = HttpContext.Current.Request.Headers["HOST"];
if (host.IsIPAddress()) ... /// Something like this ?
or
(host.IsDNSResolved()) // Or this?
摘要
很明显,一个可以做的结果,以寻找一个IP模式的正则表达式模式的测试,但有上HttpContext
属性或者更可能是HttpRequest
,或者甚至是一个辅助类的外部静态方法,它可以做出这种决定呢?你可以做
也许一个辅助问题可能是,如何在.Net中可以得到一个DNS列表?尽管巨大... – OmegaMan
主机头由客户端发送(https://en.wikipedia.org/wiki/List_of_HTTP_header_fields)。从服务器端,您可以使用Request.UserHostName和/或Request.UserHostAddress而不是使用客户端标头? –
我不理解读取HOST值的目的,因为它与您的服务器部署位置相同,除非它位于与处理请求的服务器不同的服务器上的Load Balancer后面。 你可以做的一种方法是使用Dns.GetHostName()来获取执行此语句的机器的HostName,以便与您从HOST头读取的值进行比较 – Gururaj