快速检查主机是否存在

本文关键字:是否 存在 主机 检查 | 更新日期: 2023-09-27 18:20:04

在C#中:

如果我 ping 一个网址(例如。"http://myurl.com"(并且该网址不存在,我得到一个套接字异常(不知道这样的主机(。此请求是确定地址是否存在的非常快速的方法。有没有类似的方法来检查IP是否"存在"?

显然有可能 ping IP,但如果主机位于中国(而我位于瑞典(,那么 ping 时间会很长......

快速检查主机是否存在

你的意思并不完全清楚。您可以使用Dns.GetHostEntry(string)执行DNS解析,这将名称(例如"myurl.com"(解析为主机条目(可能有许多地址( - 但这不会告诉您是否有任何东西实际使用这些IP地址。

你想完成什么?通常,如果您想了解特定主机是否存在,那是因为您想使用特定协议(例如HTTP(与它通信。在这种情况下,最好使用该协议发出请求 - 否则即使主机存在,也没有什么可以说它对您有用。

不,没有万无一失的方法可以检查是否使用了IP,因为该使用未在任何地方注册。

主机名

检查速度快的原因是,您无需实际与主机交谈即可确定主机名是否存在,它已在DNS系统中注册。

您正在执行的主机名检查并不能保证主机确实存在,只是存在从主机名到 IP 号的别名,主机很可能已关闭,您不会从该查找中知道。

此外,即使您使用 ping 来尝试确定是否使用了 IP,您也不确定,因为可能有防火墙阻止 ping 并且仍然允许其他 IP 流量通过(例如 HTTP(。为了最好地了解是否有主机可以满足您的请求,最好使用您感兴趣的实际协议对其进行轮询。

试试 telnet。 http://dotnettelnet.sourceforge.net/

连接后,您确定已到达您的 IP,然后立即发出关闭会话。否则,无法访问 ip。