【问题标题】:Android traceroute, ping, dnslookupAndroid traceroute、ping、dnslookup
【发布时间】:2013-11-28 14:31:54
【问题描述】:
我想在我的应用程序中实现 traceroute/ping/dns 查找。
对于 ping,我使用 ProcessBuilder:
ProcessBuilder processBuilder = new ProcessBuilder("ping", "-c 1", host);
Process process = processBuilder.start();
但是我怎样才能使用 traceroute 和 dns 查找呢?没有root可以吗?谢谢。
【问题讨论】:
标签:
android
ping
traceroute
nslookup
【解决方案1】:
关于 traceroute 命令。该命令本质上是递归的 ping,并设置了 TTL(生存时间)标志。 TTL 与时间无关。相反,它是一个跳计数器。每次 IP 数据包通过路由器或交换机时,TTL 字段减 1。此字段长度为 8 位,因此最大跳数为 255。
这意味着您可以使用 ping 进行自己的跟踪路由。
类似:
ProcessBuilder processBuilder;
for(int i = 100; i != 0; i==) {
processBuilder = new ProcessBuilder("ping", "-c 1 -T " + i, host);
/* do stuff here */
}