获取客户端计算机名称
本文关键字:计算机名 客户端 获取 | 更新日期: 2023-09-27 17:58:56
我正在使用以下代码。当在localhost中运行时,它正确地给出了客户端机器名称,但当我在开发服务器上运行它时,它并没有给出实际结果。知道吗?
这是一个asp.net mvc应用程序。
string clientMachineName;
clientMachineName =
(Dns.GetHostEntry(Request.ServerVariables["remote_addr"]).HostName);
Response.Write(clientMachineName);
我想要提出请求的客户端的计算机名或机器名。上面的代码给了我一个值"172.16.12.100"。
非常感谢您的帮助。
你确实意识到,你所问的和你所做的都是错误的,对吧?
您首先需要了解什么是IP地址。
当使用CCD_ 1时,这将永远不是"真实地址",因为从未发送过"真实地址"。
IP地址是在网络层使用的东西,不应该被你的应用程序真正使用,如果你真的想要给定机器的身份,你需要使用像X.509证书这样的东西,它意味着代表一个身份(IP地址不是一个身份)。
当用户在NAT后面时,您将遇到问题,并且您永远无法获得正确的用户身份。
这就是为什么在localhost下一切都很好,但很快你想要一些"盒子"之外的东西,一切都开始变得糟糕。
Dns.GetHostEntry Method (String)
方法向DNS服务器查询与主机名或IP地址关联的IP地址。这可能在远程网络上不起作用,因为您没有查询同一个DNS服务器。
更多信息:http://msdn.microsoft.com/en-us/library/ms143998.aspx
您不能保证在远程网络上获得这些信息。我假设您的开发服务器不在同一个网络上。