Java使用isReachable需要注意的事情


這兩天同事在使用Java 的ping方法的時候,發現在Windows環境下可以正常ping通的,而在centOS(Linux)里面無法ping通。

代碼如下:

boolean status = InetAddress.getByName(ipAddress).isReachable(timeOut); // 當返回值是true時,說明host是可用的,false則不可

 

經過排查: 發現被ping的設備上有設置ping包大小限制,限制在了32位以內。

我查看了一下,Windows ping的默認包大小是32位,Linux是56位.

結果如果直接使用isReachable方法是無法ping通的。


 

最終使用

Process pro = Runtime.getRuntime().exec("ping -s 32 " + ipAddress );

並解析結果來進行判斷。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM