Programatically que usa o sibilo do ICMP é uma grande maneira de estabelecer que um usuário é em serviço. Previamente você não poderia fazer o sibilo do ICMP (que comando de sibilo faz no linux/Unix & no Windows) em java sem usar JNI ou chamadas do exec. Está aqui um método simples e de confiança fazer sibilos do ICMP em Java sem usar JNI ou NIO.


Anfitrião da corda = “172.16.0.2”
intervalo de parada do int = 3000; // eu recomendo 3 segundos pelo menos
status booleano = InetAddress.getByName (anfitrião) .isReachable (intervalo de parada)

o status é verdadeiro se a máquina é reachable pelo sibilo; falso de outra maneira. O melhor esforço é feito para tentar alcangar o anfitrião, mas os guarda-fogos e a configuração de usuário podem obstruir pedidos tendo por resultado um status unreachable quando alguns portos específicos puderem ser acessíveis. Uma execução típica usará pedidos do ECO do ICMP se o privilégio pode ser obtido, se não tentará estabelecer uma conexão do TCP no porto 7 (eco) do anfitrião do destino.

No linux/Unix que você pode ter que suid o java executável começ o funcionamento do sibilo do ICMP, pedidos do ECO seja fino mesmo sem suid. Entretanto em Windows você pode começ a sibilo do ICMP sem nenhumas edições qualquer.