使用c#获取计算机名称

时间:2010-07-12 10:11:44

标签: asp.net hostname

我在cs文件中使用此代码进入asp.net页面以获取已登录用户的IP地址:

cmd.Parameters.AddWithValue("@ip",System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]);

我也想拥有他的电脑名称。我该怎么做?

1 个答案:

答案 0 :(得分:2)

这不一定是可能的。

您可以尝试使用

之类的内容从IP地址反向查找名称
private string[] GetHostnamesForIpAddress(string ipAddress)
{
   var hostIp= IPAddress.Parse(ipAddress);
   IPHostEntry hostInfo = Dns.GetHostByAddress(hostIp);

   return hostInfo.Aliases;
}

在本地网络上(您的客户端是您本地的,例如在公司网络上),这可能没问题,只要所有客户端都在DNS中具有反向IP映射。

在互联网上,为大多数客户工作的可能性要小得多。您只能继续使用IP地址,通常这些地址不会设置反向DNS映射。实际上,很多机器都会出现在代理和NAT网关之后,只有私有的,不可路由的ip地址,你不可能进行反向查找。