Android 如何通过应用程序运行traceroute命令?

Android 如何通过应用程序运行traceroute命令?,android,shell,android-ndk,command,traceroute,Android,Shell,Android Ndk,Command,Traceroute,我想通过我的应用程序运行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):位于java.lang.ProcessManager.exec(ProcessManager.ja

我想通过我的应用程序运行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):位于java.lang.ProcessManager.exec(ProcessManager.java:224)

有没有其他类似使用NDK或其他方法的方法。

请帮帮我。

您不能在Android中使用traceroute命令

如果要在安装了busybox的根设备中使用它,请使用busybox安装的路径来运行该命令。 如果您想在根设备中使用该库,它可能很有用。

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

Google play拥有提供ping、DNS、Traceroute检查端口、HTTP标头等操作的应用程序。那么它们是如何编码的?该应用程序在没有根设备的情况下运行Traceroute命令。响应是ICMP无法访问的消息。我如何在我的应用程序中接收这些消息?