为了让我写的东西像下面的计算机名称:获取计算机名
Dim client As System.Net.IPHostEntry
client = System.Net.Dns.GetHostByAddress(Request.ServerVariables.Item("REMOTE_HOST"))
label1.text=client.hostname
此代码在服务器计算机上,但在客户端机器的不工作。
有没有其他的方法来找到计算机名称。
为了让我写的东西像下面的计算机名称:获取计算机名
Dim client As System.Net.IPHostEntry
client = System.Net.Dns.GetHostByAddress(Request.ServerVariables.Item("REMOTE_HOST"))
label1.text=client.hostname
此代码在服务器计算机上,但在客户端机器的不工作。
有没有其他的方法来找到计算机名称。
你需要看看来自客户端的请求,例如:
label1.Text = HttpContext.Current.Request.UserHostName;
的代码,就像你是最好企图获取客户端的DNS机器名称:
Dim host As IPHostEntry
'Get the server variable value
host = Dns.GetHostEntry(HttpContext.Current.Request.ServerVariables.Item("REMOTE_HOST"))
您在使用“REMOTE_HOST”服务器变量时所做的是索取主机名称,请求。再次阅读最后一部分,它提供了为什么它不总能产生正确结果的答案。
如果你对此有一个负载平衡器坐在它前面的webfarm您的网站,您将得到负载平衡器,而不是原来的客户发出请求的价值。 “REMOTE_HOST”应该可能有详细信息,说明是主机发出请求的最后一个。这就是为什么使用该服务器变量不可靠。
这也是一个安全风险,所以JavaScript不允许获取这些信息,所以这也不是一个选项。纯粹出于信息的缘故,一种旧式的暴力方式是通过使用ActiveX控件来实现的,但这也不是一个可行的选择。关键是除非你在一个域上,并且可以通过IP进行反向查找,否则100%的时间可能无法获得客户的机器名称。
你会得到什么错误? Request.ServerVariables.Item(“REMOTE_HOST”)返回什么? – jgauffin 2012-03-29 14:41:13