Criar classe para executar ping em diversas interfaces

Pessoal!

Gostaria de uma ideia da gurizada para geração de uma classe que execute um ping, já tenho uma classe que identifica todas as interfaces. Só preciso que identifique qual a que está ativa.

Ai vai o código da primeira parte do projeto:


import java.net.InetAddress;   
import java.net.NetworkInterface;   
import java.net.SocketException;   
import java.util.Enumeration;   
import javax.swing.JOptionPane;   

public class RunSuporteRemoto {
   
    public static int i = 0;   
  
    public static String ip;   
       
  
    public static void main(String[] args) {   
        Enumeration nis = null;   
        try {   
            nis = NetworkInterface.getNetworkInterfaces();   
        } catch (SocketException e) {   
            e.printStackTrace();   
        }   
        while (nis.hasMoreElements()) {   
            NetworkInterface ni = (NetworkInterface) nis.nextElement();   
            Enumeration ias = ni.getInetAddresses();   
            while (ias.hasMoreElements()) {   
                InetAddress ia = (InetAddress) ias.nextElement();
                String ia_ip=ia.getHostAddress().substring(0,2);
                /* 
                 * aqui se adequa a minha rede que 10.*.*.*
                 * estou bolando uma que realize um ping e o
                 * que responder é a interface valida. 
                 */
                if(ia_ip.equals("10")){
                    ip =  ia.getHostAddress();
                }                
            }   
        }
       try {   
                Runtime.getRuntime().exec("C:\\RealVNC\\WinVNC\\winvnc.exe");   
                JOptionPane.showMessageDialog(null, "IP: " + ip, "SUPORTE REMOTO", 0);   
            } catch (java.io.IOException e) {   
            	 JOptionPane.showMessageDialog(null, "E R R O!"); 
            }  
    }   
}  

Desde já agradeço!

O InetAddress tem o método isReacheable, que faz o ping. Mas você deve pingar algum lugar…

Vini!

Pingar um site como o Google e uma máquina interna para verificação. Me dë uma ideia de como implemento isso!

Abracos!

Pingar sites não é uma boa idéia. A maioria dos servidores não responde a ping, o google é um deles.
Mas uma máquina interna pode ser uma boa.

Não tem muito segredo, simplesmente use:

InetAddress.getByName("NomeDaMaquina").isReachable(1000);

Se você tiver o endereço da máquina, no lugar do nome, use o método getByAddress ao invés do getByName. É mais rápido já que ele nem se incomoda com requisições de DNS.

Há uma assinatura do isReacheable que aceita no primeiro parâmetro a interface de rede em que o ping será dado.