Autore Topic: Utilizzo di ping su android  (Letto 3346 volte)

Offline faraone_88

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ideos
  • Sistema operativo:
    Windows 7
Utilizzo di ping su android
« il: 18 Settembre 2011, 21:22:00 CEST »
0
Salve a tutti, volevo sapere come si usa ping su android, o meglio qual è l'opzione che permette di impostare il numero di ECHO_REQUEST. In sostanza devo calcolare il tempo di risposta da 2 ip diversi (su cui gira un server che ho replicato)  e connettermi a quello "più vicino" o apparentemente tale.

Codice (Java): [Seleziona]
private long computeTime(String ip) {
        try {
            long start = System.currentTimeMillis();
            Process p = Runtime.getRuntime().exec("ping " + ip + " -c 1");
            p.waitFor();
            int exit=p.exitValue();
            if (exit == 0)
                return System.currentTimeMillis() - start;
            Log.i("EXIT_CODE", exit + "");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return Long.MAX_VALUE;
    }
Il mio problema è che con l'opzione -c 1(letta su una guida di ping per unix - http://linux.die.net/man/8/ping) ping esce con EXIT_CODE = 2 (errore generico).
Make everything as simple as possible, but not simpler - Albert Einstein

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Utilizzo di ping su android
« Risposta #1 il: 18 Settembre 2011, 22:00:56 CEST »
0
Devi mettere prima le opzioni e poi l'host... prova così:

Codice (Java): [Seleziona]
Process p = Runtime.getRuntime().exec("ping -c 1 " + ip);

Offline faraone_88

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ideos
  • Sistema operativo:
    Windows 7
Re:Utilizzo di ping su android
« Risposta #2 il: 18 Settembre 2011, 22:18:52 CEST »
0
Niente..non cambia assolutamente nulla.
Make everything as simple as possible, but not simpler - Albert Einstein

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Utilizzo di ping su android
« Risposta #3 il: 18 Settembre 2011, 22:38:40 CEST »
0
Strano, sul mio dispositivo cambia:

Codice: [Seleziona]
# ping www.google.it -c 1
ping: unknown host -c
# ping -c 1 www.google.it
PING www.l.google.com (209.85.148.105) 56(84) bytes of data.
64 bytes from fra07s07-in-f105.1e100.net (209.85.148.105): icmp_seq=1 ttl=48 time=104 ms

--- www.l.google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 104.034/104.034/104.034/0.000 ms
#

Offline faraone_88

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ideos
  • Sistema operativo:
    Windows 7
Re:Utilizzo di ping su android
« Risposta #4 il: 18 Settembre 2011, 22:43:59 CEST »
0
Settando il TTL funziona (opzione -t).
Make everything as simple as possible, but not simpler - Albert Einstein

Offline mambu

  • Utente normale
  • ***
  • Post: 167
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Utilizzo di ping su android
« Risposta #5 il: 02 Novembre 2011, 15:29:11 CET »
0
ciao, anche io sto facendo la stessa cosa, a me non funziona ancora però sniffando i pacchetti con wireshark mi sono accorto che invia correttamente la richiesta ma non riceve la risposta (l'host pingato genera un host unreachable)..Non potrebbe essere un errore dovuto all'emulatore?(non ho ancora un telefono per testarlo su un device fisico)

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:Utilizzo di ping su android
« Risposta #6 il: 11 Dicembre 2011, 17:40:03 CET »
0
Citazione
Leggi qui Using the Android Emulator | Android Developers sezione "Emulator Networking".
Ma non penso potrai risolvere. ICMP è bloccato
In un altro Topic stavo leggendo perchè non andasse il ping sull'emulatore. Molto probabilmente è perchè è bloccato ICMP.
Quindi anche a me non resta che provarlo su un dispositivo reale.
Con l'emulatore puoi solo fare Ping su 127.0.0.1
« Ultima modifica: 11 Dicembre 2011, 17:54:05 CET da alexAndroid »
Sei stato aiutato oppure il tuo problema è stato risolto? Allora premi il tasto THANKS E' un modo utile e carino per ringraziare chi ti è stato di aiuto.