如何获取客户端计算机名称

3

我在另一篇帖子中看到了这个问题,但解决方案没有正确地工作。

我使用:

System.Net.Dns.GetHostEntry(HttpContext.Current.Request.ServerVariables.Item("REMOTE_HOST")).HostName

这在本地环境下是正常的,但在服务器上出现问题并返回空字符串。有什么想法吗?

我认为你会发现客户端计算机名称在服务器上不可用,这是由于标准安全性所致。我肯定不希望我的机器名称作为页面请求的一部分被传输。 - freefaller
3个回答

1
获取客户端IP地址,请使用:

HttpContext.Current.Request.UserHostAddress.ToString

或者

HttpContext.Current.Request.UserHostName

获取客户端浏览器使用:

HttpContext.Current.Request.Browser.Browser

欢迎来到 StackOverlow。请阅读有关问题和答案格式的帮助。 - freefaller

1

需要考虑两件事情:

  1. 请注意,HttpContext.Current.Request.ServerVariables.Item("REMOTE_HOST") 将返回发出请求的主机名,而不是地址。
  2. 请尝试使用 System.Net.Dns.GetHostByAddress(Request.ServerVariables.Item("REMOTE_HOST")).HostName 替代。

您可以在 Microsoft 的 MSDN 网站上找到服务器变量列表

希望这能帮到您,


1
@freefaller 感谢您的反馈。我刚刚将它更改为微软的MSDN网站。 - Ramon Araujo

1
我发现在VS2010中,“GetHostByAddress”已经被弃用。 相反,使用:System.Net.Dns.GetHostEntry(HttpContext.Current.Request.ServerVariables["REMOTE_HOST"])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接