如何解决通过DNS.GetHostEntry将IP地址转换为主机名
|| 我正在尝试通过传入IP地址来获取主机名。我使用以下代码。System.Net.Dns.GetHostEntry(\"192.168.x.x\").HostName
对于某些主机,上面的代码正确返回了主机名,但是对于其他一些主机,它将引发异常“未找到此类主机”。
谁能告诉我为什么某些主机会发生这种情况?
我在asp.net mvc应用程序中使用了上面的代码。
解决方法
并非所有IP都使用反向DNS条目正确设置。这些IP通常是懒惰ISP上的最终用户,他们不为其客户提供“ 1”条记录。如果没有反向输入,您也可以打赌也没有向前输入。因此,这些主机根本没有主机名,因此是例外。您需要为这些主机捕获此异常,并使用其他名称(例如其IP)作为标识符。
, 我正在使用
Dns.GetHostByAddress
,即使它抱怨折旧也是如此。 (VS2010定位为3.5)
即使目标主机无法访问,即使DNS知道主机名,“ 3”似乎也会引发异常。除了使用折旧的方法外,似乎没有任何.NET方法可以解决此问题。 :\\
(编辑:虽然上面的答案也是正确的-有些机器只是没有主机名。我的答案是,如果您知道它应该有一个主机名,但GetHostEntry
不起作用)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。