【问题标题】:how to run traceroute command through your application?如何通过您的应用程序运行 traceroute 命令?
【发布时间】:2012-10-20 17:33:28
【问题描述】:

我想通过我的应用程序运行 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 还是其他方式。
请帮帮我。

【问题讨论】:

    标签: android shell android-ndk command traceroute


    【解决方案1】:

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

    【讨论】:

    • 响应是 ICMP 不可达消息。如何在我的应用程序中接收这些消息?
    【解决方案2】:

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

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

    【讨论】:

    • Google play 有应用程序提供 ping、DNS、Traceroute 检查端口、HTTP 标头等操作。那么它们如何编码?该应用程序在没有根设备的情况下运行 traceroute 命令。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 2019-10-15
    相关资源
    最近更新 更多