Executando Ping no Android

5,058 views
Skip to first unread message

Luiz Carvalho

unread,
Aug 16, 2011, 10:53:49 AM8/16/11
to androidb...@googlegroups.com
Olá amigos do Grupo, estou com um probleminha que já está me dando dor de cabeça já a bastante tempo, uma tarefa que hipoteticamente deveria ser simples.


Gostaria de fazer um ping no Android, Já sei que no Android pacotes ICMP necessitam de acesso root e ainda que seria mais fácil utilizar o isReachable, mas eu necessito das estatísticas geradas pelo pingo como tempo de resposta pacotes perdidos e rtt min/avg/max/mdev. Informações essas que creio eu que o método isReachable não me fornece.

Depois de algum tempo de pesquisa e testes consegui reproduzir o experimento em meu Galaxy 5 simplificadamente com o seguinte procedimento

            proc = Runtime.getRuntime().exec("su");
            DataOutputStream dataProc = new DataOutputStream(proc.getOutputStream());
            dataProc.writeBytes("exec ping -c 2 www.google.com \n");

           

Resumi aqui para não poluir muito, caso seja necessário todo o código só falar =)


Meu problema é, não consigo reproduzir o procedimento em emulador para comprovar o funcionamento. Procedimento esse que deveria ser o simples rooteamento do emulador. Consegui rootea-lo mas o ping continua não funcionando no emulador. então:

1) Alguem sabe me dizer por que isso está acontecendo?
2) Seria possível alguém que tenha um dispositivo rooteado testar o apk para que eu saiba se é necessário apenas ter o aparelho rooteado? Se funcionou em seu dispositivo pode me informar qual método utilizou para rootea-lo?


Agradeço muito por qualquer ajuda...








--
_______________________________________________

Luiz Arão Araújo Carvalho
Desenvolvedor RubyOnRails
www.redrails.com.br
Twitter: http://www.twitter.com/LuizCarvalho
LinkedIn: http://www.linkedin.com/in/luizkarvalho
Facebook: http://www.facebook.com/LuizCarvalho.br
WWRails: http://www.workingwithrails.com/person/13280-luiz-ar-o-a-carvalho
StackOverflow: http://stackoverflow.com/users/729535/luiz-carvalho
Lattes: http://lattes.cnpq.br/8289688520130707


qov.apk

Oscar Marques

unread,
Aug 16, 2011, 3:38:06 PM8/16/11
to androidb...@googlegroups.com
Vai no adb shell e verifica as permissoes do ping.
Nao sei se tem como dar chmod +s /bin/ping
Mas se rolar, qualquer app/user poderá executar o ping sem problemas (estamos setando o suid bit ligado nele).
--
Oscar Marques
osc...@gmail.com
http://www.dunkelheit.com.br
@f117usbr
+55 21 9293-9343

------------------------------------
Participe do I Hack'n Rio
------------------------------------


Luiz Carvalho

unread,
Aug 17, 2011, 5:28:04 PM8/17/11
to androidb...@googlegroups.com
Olá Oscar.
Obrigado pela resposta, vamos lá tentei por em prática sua dica.

Antes:
$ adb shell ls -l /system/bin/ping
-rwxr-sr-x root     net_raw     26652 2010-06-30 18:03 ping

$ adb shell
# ping -c 1 www.google.com
PING www.l.google.com (74.125.234.83) 56(84) bytes of data.

--- www.l.google.com ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

-------------------------------------------------------------------------------------------------
DEPOIS:
# ls -l /system/bin/ping
-r-srwsrwx root     net_raw     26652 2010-06-30 18:03 ping

#ping -c 1 www.google.com
PING www.l.google.com (74.125.234.80) 56(84) bytes of data.

--- www.l.google.com ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms



=================================================================

Estranho amigos que o problema não altera, mudar a permissão do ping, nem com permissão total não adiantou, mas em meu Galaxy 5 Funciona... alguem ai testou pra saber se em um dispositivo apenas rooteado funciona e se o problema está no emulador?



Agradeço desde já.

Luiz Carvalho

unread,
Aug 18, 2011, 3:41:26 PM8/18/11
to androidb...@googlegroups.com
Alguem pode pelo menos testar a app em um dispositivo rooteado para saber se está pingando? =\
QoV.apk

Gustavo Reinert

unread,
Jun 6, 2016, 3:57:44 PM6/6/16
to Android Brasil - Dev
Fiz o download do app, instalei no meu celular e está pingando perfeitamente. Parabéns.

Gorio

unread,
Jun 7, 2016, 2:57:00 AM6/7/16
to androidbrasil-dev

Existe um app chamado Ping tools. De uma olhada nele depois.

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Luiz Carvalho

unread,
Jun 7, 2016, 8:32:52 AM6/7/16
to Android Brasil - Dev
No tempo que estava pesquisando a maioria dos aplicativos não utilizava recursos nativos para o ping, meio que "emulavam" o procedimento usando API's.

Luiz Carvalho

unread,
Jun 7, 2016, 8:34:01 AM6/7/16
to Android Brasil - Dev
Realmente o problema é com emulador que, se não me engano, só permite realizar o ping para localhost :P
Reply all
Reply to author
Forward
0 new messages