如何在 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 應用程序運行即可查看以下結果。

控制台輸出: