Comment implémenter votre propre méthode InetAddress.isReachable(String address, int port, int timeout) en Java ?

Publié: 2020-10-06
Implémentez votre propre méthode InetAddress.isReachable en Java

En Java, il existe plusieurs façons de vérifier le ping et la vérification des ports. Vous pouvez utiliser la commande ping par défaut du système, l'utilitaire InetAddress de la méthode native de Java, HttpURLConnection et bien d'autres.

En production ou dans votre environnement de test, si vous souhaitez effectuer plusieurs vérifications de port, disons des centaines de vérifications en même temps, il arrive parfois que la méthode InetAddress.isReachable() n'obtienne pas la réponse correcte.

Infect dans mon cas, j'ai remarqué un échec à 100% en essayant de me connecter à www.google.com. Avez-vous l'une des questions ci-dessous ?

  • java - Pourquoi InetAddress.isReachable renvoie-t-il false, alors que je peux envoyer un ping à l'adresse IP ?
  • Comment vérifier si j'ai une connexion internet ?
  • Exemples de code Java pour java.net.InetAddress.isReachable()
  • java vérifie si l'adresse IP est accessible
  • Comment tester si un système distant est joignable ?

Suivez ce tutoriel si vous souhaitez effectuer une vérification ping en utilisant HttpURLConnection.openConnection()

Dans ce didacticiel, nous allons passer en revue 2 manières différentes d'effectuer une vérification Ping :

  1. Méthode InetAddress.isReachable(timeout)
  2. La méthode crunchifyAddressReachable(host, port, timeout) de Crunchify qui fonctionne 100% du temps

Commençons:

  1. Créez la classe CrunchifyInetAddressIsReachable.java.
  2. Nous allons créer 2 méthodes pingCheckbyInetAddressisReachable() et pingCheckbyCrunchifyisReachable() dans lesquelles nous effectuerons ci-dessus 2 tests différents.

Quelle méthode utilisons-nous crunchifyAddressReachable() ?

Nous utilisons java.net.Socket dans notre implémentation. La classe Socket implémente les sockets client. Avec l'aide de l'utilitaire connect() , nous obtenons 100% du temps un résultat correct. Veuillez consulter le code ci-dessous pour plus de détails.

CrunchifyInetAddressIsReachable.java

Une fois que vous avez copié le code dans l'environnement Eclipse, exécutez-le simplement en tant qu'application Java pour voir le résultat ci-dessous.

Sortie console :