Hello,

Just a method in order to verify the accessibility of a host via PING command.
Examples With PING command
…With host name:

Microsoft Windows [version 10.0.14393]
(c) 2016 Microsoft Corporation. Tous droits réservés.

C:\Users\H>ping www.google.fr

Envoi d’une requête 'ping' sur www.google.fr [77.154.221.181] avec 32 octets de données :
Réponse de 77.154.221.181 : octets=32 temps=47 ms TTL=53
Réponse de 77.154.221.181 : octets=32 temps=319 ms TTL=53
Réponse de 77.154.221.181 : octets=32 temps=51 ms TTL=53

Statistiques Ping pour 77.154.221.181:
    Paquets : envoyés = 3, reçus = 3, perdus = 0 (perte 0%),
Durée approximative des boucles en millisecondes :
    Minimum = 47ms, Maximum = 319ms, Moyenne = 139ms

…With IP:

C:\Users\H>ping 77.154.221.181

Envoi d’une requête 'Ping'  77.154.221.181 avec 32 octets de données :
Réponse de 77.154.221.181 : octets=32 temps=56 ms TTL=53
Réponse de 77.154.221.181 : octets=32 temps=341 ms TTL=53
Réponse de 77.154.221.181 : octets=32 temps=51 ms TTL=53

Statistiques Ping pour 77.154.221.181:
    Paquets : envoyés = 3, reçus = 3, perdus = 0 (perte 0%),
Durée approximative des boucles en millisecondes :
    Minimum = 51ms, Maximum = 341ms, Moyenne = 149ms

 

 

Java Source Code

public static boolean isReachableByPing(String host) {
    try{
            String cmd = "";
            if(System.getProperty("os.name").startsWith("Windows")) {   
                    // For Windows
                    cmd = "ping -n 1 " + host;
            } else {
                    // For Linux and OSX
                    cmd = "ping -c 1 " + host;
            }

            int nb_try = 10;
            for (int i = 0; i <nb_try; i++) {
	            Process myProcess = Runtime.getRuntime().exec(cmd);
	            myProcess.waitFor();
	            if(myProcess.exitValue() == 0) {
	            	return true;
	            }else{
	            	Thread.sleep(250); // Sleep 250 ms
	            }
            }
            return false;
    } catch( Exception e ) {
            e.printStackTrace();
            return false;
    }
}

 

… main test method:

public static void main(String[] args) {

	if(isReachableByPing("www.google.fr")){
		System.out.println("The host 'www.google.fr' is reachable by ping command.");
	}else{
		System.out.println("The host 'www.google.fr' is NOT reachable by ping command.");
	}
	
	if(isReachableByPing("77.154.221.181")){
		System.out.println("The host '77.154.221.181' is reachable by ping command.");
	}else{
	System.out.println("The host '77.154.221.181' is NOT reachable by ping command.");
	}
}

…outputs:

The host 'www.google.fr' is reachable by ping command.
The host '77.154.221.181' is reachable by ping command.

 

 

That’s all!!!

Huseyin OZVEREN