我在另一篇文章中看到了这个问题,但解决方案无法正常工作。 我用:
System.Net.Dns.GetHostEntry(HttpContext.Current.Request.ServerVariables.Item("REMOTE_HOST")).HostName
这在localhost上正常工作但在服务器上它有问题并返回一个空字符串。 有什么想法吗?
答案 0 :(得分:1)
需要考虑两件事:
HttpContext.Current.Request.ServerVariables.Item("REMOTE_HOST"
)将返回发出请求的主机的名称,而不是地址。System.Net.Dns.GetHostByAddress(Request.ServerVariables.Item("REMOTE_HOST")).HostName
。您可以找到list of the Server Variables at Microsoft's MSDN website。
希望有所帮助,
答案 1 :(得分:1)
使用
获取客户端IP地址HttpContext.Current.Request.UserHostAddress.ToString
或
HttpContext.Current.Request.UserHostName
使用客户端浏览器
HttpContext.Current.Request.Browser.Browser
答案 2 :(得分:1)
我发现VS2010中已经不建议使用“ GetHostByAddress”。
相反,请使用:System.Net.Dns.GetHostEntry(HttpContext.Current.Request.ServerVariables["REMOTE_HOST"])