Srs,
Estou desenvolvendo um software que se conecta a varios equipamentos na rede, porem antes de tentar conectar preciso verificar se o elemento esta gerenciado, ou seja, pingando, estou testando o codigo abaixo:
try{
String host = "11.141.13.55";
if(InetAddress.getByName(host).isReachable(5000)){
System.out.println("Ping OK");
}
} catch (Exception e){
e.printStackTrace();
}
O que acontece é o seguinte, o ip que eu estou passando não pinga, porem o teste passa como ok, alguem sabe o porque, ja tentei com outos ips também que não estao na rede.
att
Jovem,
Faça um teste: pinga pelo DOS nos ip’s utilizados como teste. Eu executei aqui e funcionou sem problemas.
Justamente,
Eu ja testei, no dos nao pinga o ip invalido, porem no programa ele passa no testes
Eu não creio que ele passe no teste… pelo que vi, ele não trata um resultado negativo.
Voce colocou o teste de PING no try…
sugiro que voce coloque um if else.
ou seja, o teste que voce colocou pergunta e volta ok… coloca outro, onde, se retornar falso, vc seta como NAO OK.
try{
String host = "11.141.13.55";
if(InetAddress.getByName(host).isReachable(5000)){
System.out.println("Ping OK");
}else{
System.out.println("Ping não OK");
}
} catch (Exception e){
e.printStackTrace();
}
Rafael,
Como assim tratar o resultado negativo, é simples e lógico, se é true imprime o resultado e se é false não imprime ou seja não entra no if. Quanto ao uso do try/catch já estou usando.
att,
Paulo
realmente isto é lógico…
mas eu pensei em algo, posso ate estar muito enganado, mas olha o seu try…
se entrar no try e não tiver resposta alguma, que sim ou que nao… ou se nao tiver nada, como é o caso atual…
como ele entrará no catch???
…
flw.
Cara, ele ja esta entrando no try/catch, e caso seja lançada alguma exception que entrará no bloco catch. O detalhe é que sempre tá retornando true no teste do if, mesmo com um ip inválido. O teste de ping não é feito no try/catch mas sim no if. So para reforçar nem precisa de try/catch o método que eu estou utlizando não lança excpetions.
Só uma correção, o método lança excpetions.
Ele ta imprimindo ok sempre? mesmo com IPs inexistentes?
eu testei aqui e não imprimiu nada com IP falso… qdo eu coloquei o else, imprimiu o não ok.
ou seja, ele nao acusou sempre true aqui nao…
cara, deve haver algum jeito de saber a mensagem ICMP que ele retorna do ping… aí vc analisaria pra saber o que realmente ocorre…
nuca mexi com essa questao de IPs aqui por Java nao, talvez eu esteja confundindo mais… ^^
de qualquer maneira, ficou a tentativa…
Ab’s