[問題] 取得ping rtt的方法

看板java作者 (未顯示)時間11年前 (2014/04/29 16:56), 編輯推噓1(109)
留言10則, 5人參與, 最新討論串1/1
各位大大好 我想在java上使用ping來取得對於某個ip的rtt 目前看到的方法是用Runtim直接下ping的指令 但是因為會在不同的主機上執行這個程式 例如:分別在linux和win 7 的主機上跑同樣的java code 這兩台主機輸出的格式不同 所以會需要針對不同的主機的output做處理來得到rtt的值 我想請問有沒有更好的方法 也就是不需要針對考慮不同格式的問題直接取得ping rtt的資料 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.79.71 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1398761771.A.5FE.html

04/29 17:21, , 1F
04/29 17:21, 1F

04/29 18:13, , 2F
除了針對不同格式parse外 除非自己寫個ping 不然無解
04/29 18:13, 2F

04/30 10:27, , 3F
java語言層級不支援raw socket, 所以還是得各平台JNI
04/30 10:27, 3F

04/30 10:36, , 4F
jpingy看了一下是直接執行ping解析結果....
04/30 10:36, 4F

04/30 10:37, , 5F
不過java不支援raw socket下無法實作ping必須的ICMP
04/30 10:37, 5F

04/30 10:45, , 6F
要玩Raw Socket JNI Wrapper的話有人寫好了 RockSaw
04/30 10:45, 6F

04/30 16:40, , 7F
謝謝幾位大大講解,看來還是自己對不同平台解析結果比較快
04/30 16:40, 7F

04/30 18:16, , 8F
其實如果你只是要知道time=xxms的xx,甚至不需要parse,只需
04/30 18:16, 8F

04/30 18:18, , 9F
要search "=ms",然後再往前收集數字直到空白
04/30 18:18, 9F

04/30 18:19, , 10F
更正,search "ms" (上行多打了個等號)
04/30 18:19, 10F
文章代碼(AID): #1JNsahN- (java)
文章代碼(AID): #1JNsahN- (java)