Трассировка Android, ping, dnslookup

Я хочу реализовать поиск traceroute/ping/dns в своем приложении. Для пинга я использую ProcessBuilder:

    ProcessBuilder processBuilder = new ProcessBuilder("ping", "-c 1", host);
    Process process = processBuilder.start();

Но как я могу использовать трассировку и поиск DNS? Можно ли без рута? Спасибо.


person Yuriy Aizenberg    schedule 28.11.2013    source источник
comment
Дублируется? stackoverflow.com/questions/4203374/traceroute-on-android   -  person Domin    schedule 06.10.2015


Ответы (1)


Относительно команды traceroute. Эта команда по существу является рекурсивной ping с установленным флагом TTL (время жизни). TTL не имеет ничего общего со временем. Вместо этого это счетчик прыжков. Каждый раз, когда IP-пакет проходит через маршрутизатор или коммутатор, поле TTL уменьшается на 1. Это поле имеет длину 8 бит, поэтому максимальное количество переходов будет равно 255.

Это означает, что вы можете сделать свой собственный traceroute с помощью ping.

Что-то вроде:

ProcessBuilder processBuilder;
for(int i = 100; i != 0; i==) {
  processBuilder = new ProcessBuilder("ping", "-c 1 -T " + i, host);
  /* do stuff here */
}
person Ben    schedule 03.05.2016