在使用System.Net.GetHostByAddress方法的web应用程序中,返回错误主机名的方法存在问题。
问题是,给定IP地址,它始终返回一个不正确的主机名,仅适用于Windows 7客户端。运行Windows的系统通常会返回其主机名。
我们使用的代码如下所示:
host = System.Net.Dns.GetHostByAddress(GetIPv4Address)
strComputerName = host.HostNameGetIPv4Address是访问web应用程序的地址。但是,我们也尝试了直接对IP地址进行硬编码,结果是相同的:
host = System.Net.Dns.GetHostByAddress("192.168.1.1")
strComputerName = host.HostName最后一个缺点是,对于任何给定的IP地址,GetHostByAddress大部分时间都会返回相同(不正确)的主机名。但是,每隔一段时间它就会抛出一个SocketException:不知道这样的主机。
更新:
发布于 2012-04-04 23:58:08
GetHostByAddress被否决了。我就是这样做的:
string ComputerName;
try
{
ComputerName = System.Net.Dns.GetHostEntry(IPAddress).HostName;
}
catch (Exception e)
{
ComputerName = "Unknown";
}这适用于我的Windows 7客户端。我还没试过GetHostByAddress,所以ymmv。
https://stackoverflow.com/questions/10016481
复制相似问题