2012-10-31 55 views
2

我想通過我的應用程序運行traceroute命令。
我該怎麼做?
如何通過您的應用程序運行traceroute命令?

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

不工作。

產生java.io.IOException:錯誤運行EXEC()。命令:[跟蹤路由,-4,google.com]工作目錄:ProcessManager.java:224在java.lang.ProcessManager.exec(:空環境:空 12月11日至2日:51:38.399:E /跟蹤(1604) )

有沒有像使用NDK或者另一種方式。
請幫我一把。

回答

1

不能在Android上使用使用traceroute命令。

如果你想使用它與busybox的安裝有根設備,使用busybox的安裝路徑來運行該命令。如果您想在根設備中使用它,則可以使用thi庫。 http://code.google.com/p/roottools/

+2

谷歌播放具有給平,DNS,路由跟蹤檢查端口,HTTP頭像action.then他們是如何編寫應用程序?該應用程序運行沒有植根設備traceroute命令。 – Raga

2

你可以做的另一件事是使用簡單的ping命令來創建你自己的traceroute。 Traceroute本質上是用修改的TTL字段發送ping。當ip數據包達到它降低的TTL限制(在目標服務器之前)時,服務器會發送響應。這些響應是traceroute如何能夠找到數據包如何到達目的地。

+1

響應是ICMP不可達消息。我如何在我的應用程序中收到這些消息? –

相關問題