首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么GetHostByAddress只对Windows 7客户端失败?

为什么GetHostByAddress只对Windows 7客户端失败?
EN

Stack Overflow用户
提问于 2012-04-04 17:42:54
回答 1查看 882关注 0票数 0

在使用System.Net.GetHostByAddress方法的web应用程序中,返回错误主机名的方法存在问题。

问题是,给定IP地址,它始终返回一个不正确的主机名,仅适用于Windows 7客户端。运行Windows的系统通常会返回其主机名。

我们使用的代码如下所示:

代码语言:javascript
复制
host = System.Net.Dns.GetHostByAddress(GetIPv4Address)
strComputerName = host.HostName

GetIPv4Address是访问web应用程序的地址。但是,我们也尝试了直接对IP地址进行硬编码,结果是相同的:

代码语言:javascript
复制
host = System.Net.Dns.GetHostByAddress("192.168.1.1")
strComputerName = host.HostName

最后一个缺点是,对于任何给定的IP地址,GetHostByAddress大部分时间都会返回相同(不正确)的主机名。但是,每隔一段时间它就会抛出一个SocketException:不知道这样的主机。

更新:

  • 根据对GetHostByAddress的评论意见,我们从GetHostEntry转到API文档
  • GetHostEntry还返回不正确的结果。
  • 进一步的调查显示,nslookup返回的结果类似于我们从GetHost*获得的结果。因此,这可能不是.NET问题。我们正在联系我们的网络管理员,看看他们能不能解决这个问题。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-04 23:58:08

GetHostByAddress被否决了。我就是这样做的:

代码语言:javascript
复制
string ComputerName;
try
{
    ComputerName = System.Net.Dns.GetHostEntry(IPAddress).HostName;
}
catch (Exception e)
{
    ComputerName = "Unknown";
}

这适用于我的Windows 7客户端。我还没试过GetHostByAddress,所以ymmv。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10016481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档