您好我需要使用Java代碼執行PING
命令並獲得ping主機的摘要。如何在Java中做到這一點?如何運行PING命令並獲取ping主機摘要?
回答
作爲viralpatel指定可以使用Runtime.exec()
以下是它的一個例子
class pingTest {
public static void main(String[] args) {
String ip = "127.0.0.1";
String pingResult = "";
String pingCmd = "ping " + ip;
try {
Runtime r = Runtime.getRuntime();
Process p = r.exec(pingCmd);
BufferedReader in = new BufferedReader(new
InputStreamReader(p.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
pingResult += inputLine;
}
in.close();
} catch (IOException e) {
System.out.println(e);
}
}
}
輸出
Pinging 127.0.0.1 with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Ping statistics for 127.0.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
參閱http://www.velocityreviews.com/forums/t146589-ping-class-java.html
我想在html中添加輸出而不是println當我嘗試這樣做時,它會一直執行很長時間,然後我取消它! – 2012-01-11 06:44:30
我應該如何將它附加到html? – 2012-01-11 06:45:02
我認爲你正在使用'servlet',那麼你可以使用printwriter對象將文本添加到servlet html – 2012-01-11 06:49:21
它只支持UNIX嗎?你應該包括Windows支持,以及如果你想讓你的庫有用... – BullyWiiPlaza 2015-09-18 13:28:32
InetAddress
類有一個使用ECMP迴應請求,以確定主機可用性的方法(又名平)。
String ipAddress = "192.168.1.10";
InetAddress inet = InetAddress.getByName(ipAddress);
boolean reachable = inet.isReachable(5000);
如果上述reachable
變量爲真,那麼就意味着主機已經適當地與ECMP回顯應答(又名乒乓)給定的時間內(以毫秒)回答。
注意:並非所有的實現都必須使用ping。 The documentation states that:
一個典型的實現將使用ICMP echo請求,如果能獲得特權 ,否則將嘗試建立目標主機的端口TCP連接 7(回聲)。
因此,該方法可用於檢查主機可用性,但它不能普遍用於檢查基於ping的檢查。
在Windows下,似乎java不使用ping,並且默認使用端口7上的TCP連接,而這通常被防火牆阻止。在Unix下,ping需要root訪問權限,因此通常也默認使用端口7.因此在生產環境中isReachable是無用的。 – ssindelar 2016-06-01 11:45:04
- 1. 從bash腳本ping未知主機ping
- 2. 如何使用Perl :: Net :: Ping單線程來ping主機?
- 3. 不能ping Hadoop主機名
- 4. Ping命令和域名
- 5. 對安全主機URL執行Ping
- 6. Laravel代客安裝後ping Ping test.dev返回「未知主機」
- 7. 腳本來ping從ping一臺單一的主機名
- 8. 運行ping * hostname *命令時使用哪個IPv4
- 9. Python 3.4.3:os.system不運行我的ping「命令」
- 10. Ping網絡並獲取mac地址
- 11. 在PHP中執行ping命令,並在網頁上
- 12. 如何停止python中運行的PING
- 13. 批處理文件 - 從ping命令獲取ip
- 14. 我想ping主機後得到ping執行時間和結果字符串
- 15. mininet:動態創建的主機不能ping其他主機,但主機可以ping交換機
- 16. 如何執行大量的併發Ping?
- 17. 從AppEngine Ping Ping
- 18. 批處理文件運行ping命令並輸出到文本以及
- 19. 如何使用PHP和curl以與ping相同的方式ping ping ping
- 20. 如何從VB .net插入/運行Windows命令(ping,getmac,vmic等) - Visual Studio 2012
- 21. 如何爲運行在Azure上的虛擬機啓用ping?
- 22. 從SendPingAsync檢索ping主機名結果
- 23. 從ping主機抓住IpAddress c#
- 24. Bash腳本Ping主機和目錄
- 25. 無法解析主機名,ping工程
- 26. Perl腳本Ping許多主機
- 27. 主機無法ping Minikube節點
- 28. Ansible:來自遠程主機的Ping
- 29. ping命令後1秒延遲
- 30. 批處理文件ping -t命令
@ bhesh-gurung我開始了一個小的Java庫https://code.google.com/p/jpingy/。還有很多工作(今天開始) – tgoossens 2012-08-13 19:55:34