获取客户端机器名称

Lam*_*mps 5 .net c# asp.net

我使用以下代码.在localhost中运行时,它正确地提供了客户端计算机名称,但是当我运行开发服务器时,它没有给出实际结果.任何的想法?

这是一个asp.net mvc应用程序.

string clientMachineName;
clientMachineName = 
    (Dns.GetHostEntry(Request.ServerVariables["remote_addr"]).HostName);
Response.Write(clientMachineName);
Run Code Online (Sandbox Code Playgroud)

我想要提出请求的客户端的计算机名称或机器名称.上面的代码给了我一个值'172.16.12.100'.

任何帮助非常感谢.

bal*_*dre 9

你确实意识到,你在问什么以及你在做什么是对的错?

您首先需要了解IP地址是什么.

使用Request.ServerVariables("REMOTE_ADDR")它时永远不会是"真实地址",因为没有发送"真实地址".

IP地址是网络层使用的东西,不应该被你的应用程序真正使用,如果你真的想要给定机器的身份,你需要使用类似X.509证书的东西,这些证书代表了身份(IP地址不是身份).

当用户在NAT后面时,您将遇到问题,并且您永远无法获得用户的正确身份.

这就是为什么在localhost下一切正常,但很快你想要在"盒子"之外的东西一切都开始恶化了.