Jak zaimplementować własną metodę InetAddress.isReachable(String address, int port, int timeout) w Javie?

Opublikowany: 2020-10-06
Zaimplementuj własną metodę InetAddress.isReachable w Javie

W Javie istnieje wiele sposobów sprawdzania pingu i portu. Możesz użyć polecenia ping domyślnego systemu, natywnej metody Javy, narzędzia InetAddress , HttpURLConnection i innych.

W środowisku produkcyjnym lub testowym, jeśli chcesz wykonać wiele kontroli portów, powiedzmy setki kontroli jednocześnie, czasami metoda InetAddress.isReachable() nie otrzymuje poprawnej odpowiedzi.

Infect w moim przypadku zauważyłem 100% niepowodzenie podczas próby połączenia z www.google.com. Czy masz któreś z poniższych pytań?

  • java – Dlaczego InetAddress.isReachable zwraca wartość false, skoro mogę pingować adres IP?
  • Jak sprawdzić, czy mam połączenie z internetem?
  • Przykłady kodu Java dla java.net.InetAddress.isReachable()
  • java sprawdź, czy adres IP jest osiągalny
  • Jak sprawdzić, czy zdalny system jest osiągalny?

Postępuj zgodnie z tym samouczkiem, jeśli chcesz sprawdzić ping za pomocą HttpURLConnection.openConnection()

W tym samouczku omówimy 2 różne sposoby sprawdzania ping:

  1. Metoda InetAddress.isReachable(timeout)
  2. Metoda crunchifyAddressReachable(host, port, timeout) która działa w 100% przypadków

Zacznijmy:

  1. Utwórz klasę CrunchifyInetAddressIsReachable.java.
  2. Stworzymy 2 metody pingCheckbyInetAddressisReachable() oraz pingCheckbyCrunchifyisReachable() w których wykonamy powyżej 2 różne testy.

Jakiej metody używamy crunchifyAddressReachable()?

W naszej implementacji używamy java.net.Socket . Klasa Socket implementuje gniazda klienta. Za pomocą narzędzia connect() uzyskujemy poprawny wynik w 100% przypadków. Aby uzyskać więcej informacji, spójrz na poniższy kod.

CrunchifyInetAddressIsReachable.java

Po skopiowaniu kodu do środowiska Eclipse wystarczy uruchomić aplikację Java, aby zobaczyć poniższy wynik.

Wyjście konsoli: