繁体   English   中英

通过 DNS.GetHostEntry 将 IP 地址转换为主机名

[英]Converting IP address to host name via DNS.GetHostEntry

我试图通过传入 ip 地址来获取主机名。 我使用以下代码。

System.Net.Dns.GetHostEntry("192.168.x.x").HostName

对于某些主机,上述代码正确返回主机名,但对于少数其他主机,它会引发异常“未找到此类主机”。

谁能告诉我为什么某些主机会发生这种情况?

我在 asp.net mvc 应用程序中使用了上述代码。

并非所有 IP 都使用反向 DNS 条目正确设置。 这些 IP 通常是不为其客户提供PTR记录的惰性 ISP 的最终消费者。 如果没有反向进入,您可以打赌也没有正向进入。 因此,这些主机根本没有主机名,因此例外。 您需要为这些主机捕获此异常并使用其他内容(例如其 IP)作为标识符。

我正在使用Dns.GetHostByAddress ,即使它抱怨被贬值。 (VS2010 针对 3.5)

如果目标主机不可访问,即使 DNS 知道主机名, Dns.GetHostEntry似乎也会引发异常。 除了使用折旧的方法外,似乎没有任何 .NET 解决方法。 :\

(编辑:虽然上面的答案也是正确的 - 有些机器只是没有主机名。我的答案是如果你知道它应该有一个主机名但GetHostEntry不起作用)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM