Maison  >  Article  >  Java  >  Comment envoyer un ping aux adresses IP externes depuis Java Android ?

Comment envoyer un ping aux adresses IP externes depuis Java Android ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-14 22:29:02838parcourir

How to Ping External IPs from Java Android?

Pinger des adresses IP externes à partir de Java Android

Dans le développement Java Android, il est possible d'envoyer une requête ping aux adresses IP locales et externes. Cependant, si vous rencontrez des problèmes lorsque vous essayez d'envoyer une requête ping à des serveurs externes, voici un guide de dépannage :

Analyse du code :

Votre code tente d'envoyer une requête ping à une adresse IP en en utilisant la méthode InetAddress.isReachable(). Cette méthode teste uniquement les adresses IP locales. Pour activer le ping des serveurs externes, vous devez utiliser une approche différente.

Solution : Utilisation de commandes natives

Le code fourni dans la réponse utilise des commandes natives pour exécuter un opération de ping. Cette approche vous permet d'envoyer une requête ping à n'importe quelle adresse IP, à la fois locale et externe. Voici une explication du code :

private boolean executeCommand(){
    System.out.println("executeCommand");
    Runtime runtime = Runtime.getRuntime();
    try
    {
        Process mIpAddrProcess = runtime.exec("/system/bin/ping -c 1 8.8.8.8");
        int mExitValue = mIpAddrProcess.waitFor();
        System.out.println(" mExitValue "+mExitValue);
        if(mExitValue==0){
            return true;
        }else{
            return false;
        }
    }
    catch (InterruptedException ignore)
    {
        ignore.printStackTrace();
        System.out.println(" Exception:"+ignore);
    } 
    catch (IOException e) 
    {
        e.printStackTrace();
        System.out.println(" Exception:"+e);
    }
    return false;
}
  1. La méthode runtime.exec() est utilisée pour exécuter la commande ping.
  2. La commande ping inclut l'option -c 1, qui spécifie que la commande ne doit envoyer qu'une seule requête ping.
  3. La méthode waitFor() attend la fin de la commande et renvoie la sortie valeur.
  4. Si la valeur de sortie est 0, la requête ping a réussi. Sinon, la demande ping a échoué.

Assurez-vous que vous disposez des autorisations nécessaires dans votre fichier AndroidManifest.xml pour accéder à Internet avant d'utiliser ce code.

Considérations supplémentaires :

  • Assurez-vous que votre appareil est connecté au Internet.
  • Assurez-vous qu'aucun pare-feu ou paramètre réseau ne bloque les requêtes ping.
  • Utilisez une bibliothèque de validation d'adresse IP pour vérifier l'adresse IP avant d'effectuer un ping.
  • Gérez tout exceptions potentielles ou cas d'erreur avec élégance.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn