获取计算机名称

时间:2012-03-29 10:29:11

标签: asp.net vb.net

要获取计算机名称,我写了类似下面的内容:

Dim client As System.Net.IPHostEntry
client = System.Net.Dns.GetHostByAddress(Request.ServerVariables.Item("REMOTE_HOST"))
label1.text=client.hostname

此代码适用于服务器计算机,但在客户端计算机上无效。

是否有其他方法可以找到计算机名称。

2 个答案:

答案 0 :(得分:2)

您需要查看来自客户端的请求,例如:

label1.Text = HttpContext.Current.Request.UserHostName;

详细了解HttpRequest.UserHostName Property

答案 1 :(得分:0)

以下代码与您的最佳尝试获取客户端DNS计算机名称一样:

Dim host As IPHostEntry
'Get the server variable value
host = Dns.GetHostEntry(HttpContext.Current.Request.ServerVariables.Item("REMOTE_HOST"))

使用“REMOTE_HOST”服务器变量执行的操作是询问发出请求的主机的名称。再次阅读最后一部分,它提供了为什么它不会总是产生正确结果的答案。

如果您的网站位于其前面有负载均衡器的网站上,您将获得负载均衡器的值,而不是原始的值客户提出请求。 “REMOTE_HOST”应该有详细说明,它是发出请求的 last 主机。这就是使用该服务器变量不可靠的原因。

这也是一个安全风险,因此JavaScript不允许获取此信息,因此也不是一个选项。纯粹为了信息,一个老式的暴力方法来获得这个是通过使用ActiveX控件,但这也不是一个可行的选择。重点是,除非您在某个域上并且可以通过IP进行反向查找,否则您可能没有任何方便且可靠的方式在100%的时间内获取原始客户端的计算机名称。