我需要對某些ip /機器執行ping。該代碼可以在任何類型的平臺(Windows,Linux,Mac)上執行,我需要獲取有關丟失和往返時間的信息。 因此,java的ping執行不夠好,因爲那時我需要將ping響應解析爲字符串,每個平臺和每種操作系統語言都是不同的。 那麼我需要做什麼?我知道有一些像JNI,但我是新來的Java,所以需要一點幫助。 它仍然意味着我需要在每個平臺上進行本地實施? 任何示例或建議?用java ping多平臺
7
A
回答
0
我已經使用JNI來獲取ping命令。 我已經使用native(C)實現了ping,然後用JNI包裝它。 降級是需要編譯每個平臺的C DLL。
1
你不能用純Java來做真正的ICMP。雖然合理的便攜式jpcap庫爲本地庫提供了一個不錯的Java接口,包括ICMP(ping)。
0
我想解析仍然是最簡單的選擇。如果你需要比這更多的正則表達式我會很驚訝:
time[<=]([0-9.]+)[ ]?ms
用括號括起來,你會得到的時間像1
或14
或1.239
可送入Float.parseFloat()
。
5
由於java不是平臺獨立的,因此您可以詢問您使用System.getProperty("os.name")
的哪個操作系統,並解析響應或根據它來定義命令。
或者,您可以使用isReachable(int timeout)
中的InetAddress
這似乎是最接近ICMP ECHO REQUEST的實現,但它不會提供關於丟失和往返時間的信息。
另一個想法是使用tracert/tracepath而不是ping來獲取往返行程?有關更多信息,請查詢this thread。
+1
isReachable - 盡力而爲,如果icmp不起作用,它將切換到TCP。 – Sophie 2011-05-31 05:49:35
相關問題
- 1. Java,Java VM,Java平臺,
- 2. Java中的多平臺配置工具
- 3. Java中的多平臺2D圖形
- 4. 用Java高效「Ping」
- 5. 多平臺開發
- 6. 多平臺腳本
- 7. 多平臺安裝程序
- 8. Java平臺遊戲衝突
- 9. 從C#啓動Java平臺#
- 10. Java:跨平臺.flv播放
- 11. 爲多個移動平臺使用Java ServerSocket?
- 12. 使用Java實現IM平臺
- 13. 多平臺原子增量
- 14. 無聲地在後臺ping
- 15. 多平臺自動化
- 16. 多平臺開發選項
- 17. 多平臺數據保護
- 18. 多平臺(android/iphone)聊天
- 19. C++跨平臺多線程?
- 20. 多平臺代碼生成
- 21. 多平臺崩潰報告?
- 22. install4j多平臺版問題
- 23. 多平臺性能分析
- 24. 多平臺CI工具?
- 25. 多平臺移動應用程序
- 26. 建議多平臺應用程序
- 27. 設置爲多平臺應用程序
- 28. 如何使用FireMonkey截圖(多平臺)
- 29. 如何用fpc做多平臺編譯?
- 30. 多平臺OpenCL應用程序
我已經使用JNI來獲取ping命令。 – Sophie 2011-06-22 11:13:30