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

本文关键字:地址 转换为主机名 IP DNS GetHostEntry 通过 | 更新日期: 2023-09-27 17:59:14

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

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

对于某些主机,上面的代码正确地返回了主机名,但对于其他少数主机,它会抛出异常"找不到这样的主机"。

有人能告诉我为什么有些主持人会这样吗?

我在一个asp.net mvc应用程序中使用了上面的代码。

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

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

我正在使用Dns.GetHostByAddress,尽管它抱怨折旧。(VS2010目标为3.5)

如果目标主机不可访问,即使DNS知道主机名,Dns.GetHostEntry似乎也会抛出异常。除了使用折旧方法外,似乎没有任何.NET方法可以解决这个问题。:''

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