如何在 Java 中实现自己的 InetAddress.isReachable(String address, int port, int timeout) 方法?

已发表: 2020-10-06
在 Java 中实现自己的 InetAddress.isReachable 方法

在 Java 中有多种方法可以检查 ping 和端口检查。 您可以使用系统默认的 ping 命令、Java 的本地方法InetAddress实用程序、 HttpURLConnection等等。

在生产或测试环境中,如果要执行多个端口检查,比如说同时进行数百次检查,那么有时InetAddress.isReachable()方法没有得到正确的响应。

在我的情况下感染,我在尝试连接到 www.google.com 时注意到 100% 失败。 您有以下任何问题吗?

  • java – 当我可以 ping IP 地址时,为什么 InetAddress.isReachable 返回 false?
  • 如何检查我是否有互联网连接?
  • java.net.InetAddress.isReachable() 的 Java 代码示例
  • java检查ip地址是否可达
  • 如何测试远程系统是否可达?

如果您想使用 HttpURLConnection.openConnection() 执行 ping 检查,请遵循本教程

在本教程中,我们将介绍 2 种不同的方式来执行 Ping 检查:

  1. InetAddress.isReachable(timeout) 方法
  2. Crunchify 的crunchifyAddressReachable(host, port, timeout)方法 100% 有效

让我们开始吧:

  1. 创建类 CrunchifyInetAddressIsReachable.java。
  2. 我们将创建 2 个方法 pingCheckbyInetAddressisReachable() 和 pingCheckbyCrunchifyisReachable(),我们将在其中执行上述 2 个不同的测试。

我们使用 crunchifyAddressReachable() 的方法是什么?

我们在实现中使用java.net.Socket 。 Socket 类实现客户端套接字。 在connect()实用程序的帮助下,我们得到了 100% 正确的结果。 请查看以下代码以获取更多详细信息。

CrunchifyInetAddressIsReachable.java

将代码复制到 Eclipse 环境后,只需作为 Java 应用程序运行即可查看以下结果。

控制台输出: