3

我想通过我的应用程序运行 traceroute 命令。
我该怎么做呢?

Runtime.getRuntime().exec("traceroute google.com")

不工作。

java.io.IOException:运行 exec() 时出错。命令:[traceroute,-4,google.com] 工作目录:null 环境:null 11-02 12:51:38.399: E/trace(1604): at java.lang.ProcessManager.exec(ProcessManager.java:224)

是否有另一种方法,例如使用 NDK 或其他方式。
请帮帮我。

4

2 回答 2

3

您不能在 Android 中使用 use traceroute 命令。

如果要在安装了busybox的root设备中使用它,请使用busybox安装路径来运行命令。如果你想在有根设备中使用这个库,它会很有用。 http://code.google.com/p/roottools/

于 2012-10-31T10:03:04.907 回答
2

您可以做的另一件事是使用简单的 ping 命令创建您自己的跟踪路由。Traceroute 本质上是发送带有修改过的 TTL 字段的 ping。当 ip 数据包达到其降低的 TTL 限制(在目标服务器之前)时,服务器会发送响应。这些响应是跟踪路由如何能够找到数据包如何到达目的地的方式。

于 2013-05-03T22:27:12.517 回答