【发布时间】:2010-07-12 10:11:44
【问题描述】:
我正在将 cs 文件中的这段代码用于 asp.net 页面,以从登录用户那里获取 ip 地址:
cmd.Parameters.AddWithValue("@ip",System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]);
我也想知道他的计算机名。我该怎么做?
【问题讨论】:
我正在将 cs 文件中的这段代码用于 asp.net 页面,以从登录用户那里获取 ip 地址:
cmd.Parameters.AddWithValue("@ip",System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]);
我也想知道他的计算机名。我该怎么做?
【问题讨论】:
这不一定是可能的。
您可以尝试从 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 地址,您不可能对其进行反向查找。
【讨论】: