vi como sugestões para programas iniciais fazer um programa que testa o servidor enviando um ping para o mesmo, só que inicialmente estou tomando erro nesse código e não consigo entender porque, se alguém puder me dar uma ajudinha.
Só para informar ainda vou colocar IF abaixo dentro de um loop infinito para ficar testando enquato roda, assim saberei quando está no ar e quando está fora do ar( o servidor em questão).
importjava.net.InetAddress;publicclassPingaServidor{publicstaticvoidmain(String[]args){Stringservidor;privatestaticvoidpingar(StringServidor){if(InetAddress.getByName(Servidor).isReachable(5000))System.out.println("Ping OK "+Servidor);elseSystem.out.println("Ping Falhou "+Servidor);}pingar(servidor);}}
A main por si só é uma função. Então você deve criar uma outra função (no seu caso, pingar) fora da main e, de dentro da main, chamar essa outra função. O que você fez foi criar uma função dentro da main. E você deve criar essa outra função fora da main.
publicstaticvoidmain(String[]args){pingar("endereco do servidor");}privatestaticvoidpingar(Stringendereco){if(InetAddress.getByName(endereco).isReachable(5000))System.out.println("Ping OK "+endereco);elseSystem.out.println("Ping Falhou "+endereco);}
rjpepeu
Obrigado!!!
criei 2 classes uma com o metodo e outra que estância e chama o método da primeira.
Segue abaixo:
importjava.io.IOException;importjava.net.InetAddress;publicclassUtilPing{publicvoidpingar(StringServidor)throwsIOException,IOException{if(InetAddress.getByName(Servidor).isReachable(5000))System.out.println("Ping OK "+Servidor);elseSystem.out.println("Ping Falhou "+Servidor);}}
Eu tento pingar para o google só que dá falha não sei porque agora é tentar entender isso.
abs
rjpepeu
Fala pessoal,
alguém consegue entender porque esse código nunca funciona se o ping não for para o localhost?
Inclusive quando eu coloco 127.0.0.0(endereço do localhost) não funciona.
Se alguém puder me ajudar?
Valeu galera!!!
raposo.leandro
Tente usar como endereço para localhost 127.0.0.1
drigo.angelo
Tenta também com o ip do google (64.233.163.104)
rjpepeu
Eu nem tinha me dado conta que o ip que eu colocava como localhost estava errado… rsss (valeu meu camarada!!!)
Após ter funcionado com o 127.0.0.1, testei o ip do google(64.233.163.104) só que não funciona, isto é, só funciona para minha máquina. Qualquer IP externo que eu tente da falha no ping, só que no command o ping funciona perfeitamente.
Resumindo continuo boiando, estou procurando se eu descobrir de alguma forma eu coloco aqui o feed back, mas se alguém souber dá uma idéia aê!!!.
Valeu galera!!!
Abs
adriano_si
Cara… posso estar falando a maior besteira do mundo, mas seu server tem rota externa ?? Teu servidor está disponível na Web ??? Tenta acessar o IP de alguma máquina de tua rede interna (se tiveres alguma)…
Abs []
adriano_si
Falei a maior besteira do mundo sim... heuehueheuehue fiz o teste aqui e consegui pingar o Google com o IP que amigo acima passou...
publicstaticvoidmain(String[]args){try{pingar("64.233.163.104");}catch(UnknownHostExceptionex){ex.printStackTrace();}catch(IOExceptionex){ex.printStackTrace();}}privatestaticvoidpingar(Stringendereco)throwsUnknownHostException,IOException{InetAddressia=InetAddress.getByName(endereco);if(ia.isReachable(5000)){System.out.println("Ping OK "+endereco);System.out.println("Host : "+ia.getHostName());System.out.println("Canonical Host: "+ia.getCanonicalHostName());}else{System.out.println("Ping Falhou "+endereco);}}
Resultado...
Ping OK 64.233.163.104
Host : bs-in-f104.1e100.net
Canonical Host: bs-in-f104.1e100.net
rjpepeu
Fala Adriano,
testei o ping com o seu código deixei o meu de lado… rsss
Mas infelizmente deu erro também, o que acho é que o firewall da máquina está bloqueado alguma coisa, tentei pingar para dentro da minha rede(no caso rede do trabalho e não tive sucesso).
Você usa windows ou linux?
Será que o maldito firewall do windows está bloqueando alguma coisa?
Abs e muito obrigado
rjpepeu
fala Galera!!!!!
Infelizmente não consegui resolver isso com o InetAddress, mas lendo algumas coisas na internet achei aqui mesmo no GUJ uma idéia de usar a Runtime e a Process, pois assim eu estaria usando o command da máquina(com certeza não funciona em todos os SO's, portanto deixa de ser portável.).
Enfim irei colocar aqui o código que fiz.
importjava.io.IOException;importjava.util.Scanner;publicclassUtilPing{Runtimer=Runtime.getRuntime();publicvoidpingar(StringServidor){try{Processp=r.exec("Ping "+Servidor+" -t");Scannerscan=newScanner(p.getInputStream());Stringlinha="";while((linha=scan.nextLine())!=null){if(linha.startsWith("Resposta de")){System.out.println(Servidor+" Ligado ---> "+linha);}if(linha.startsWith("Esgotado o tempo")){System.out.println(Servidor+" Desligado ---> "+linha);}}}catch(IOExceptione){// TODO Auto-generated catch blocke.printStackTrace();}}}
Desde já muito obrigado pela ajuda que me deram!!!!
Ahnnn se alguém souber o porque da bosta do InetAddress não funcionar, me dá um toque.
Abs.
adriano_si
rjpepeu:
Fala Adriano,
testei o ping com o seu código deixei o meu de lado… rsss
Mas infelizmente deu erro também, o que acho é que o firewall da máquina está bloqueado alguma coisa, tentei pingar para dentro da minha rede(no caso rede do trabalho e não tive sucesso).
Você usa windows ou linux?
Será que o maldito firewall do windows está bloqueando alguma coisa?
Abs e muito obrigado
Cara, onde eu testei foi no Windows e realmente com o Firewall desligado… quando chegar em casa, vou testar no Linux e posto o resultado pra tí…
Realmente tá muito estranho esse erro…
Abs [] e boa sorte…
rjpepeu
Adriano,
pela Runtime e pela Process, eu consegui numa boa.