您好我需要使用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两台主机并根据状态执行命令
- 2. 如何在没有Ping统计的情况下获取ping命令的输出?
- 3. 从bash脚本ping未知主机ping
- 4. Ping命令参数
- 5. 如何使用Perl :: Net :: Ping单线程来ping主机?
- 6. 从ping获取主机名并将结果存储为文本
- 7. 如何使用SimplePing ping多个主机?
- 8. 如何查找主机ping时间
- 9. 不能ping Hadoop主机名
- 10. 管在Ping命令输出
- 11. Ping命令和域名
- 12. while循环与Ping命令
- 13. C程序中使用ping命令的主机可达性
- 14. 使用ping命令ARP总是返回主机离线
- 15. 对安全主机URL执行Ping
- 16. 并行ping扫描
- 17. Python运行ping并获取退出代码
- 18. 执行ping命令来使用Lua io.popen地址,非阻塞如果Ping超时
- 19. Laravel代客安装后ping Ping test.dev返回“未知主机”
- 20. 脚本来ping从ping一台单一的主机名
- 21. 从C++中的系统命令检索ping时间(ping x.x.x.x -n)
- 22. Python 3.4.3:os.system不运行我的ping“命令”
- 23. 运行ping * hostname *命令时使用哪个IPv4
- 24. Ping网络并获取mac地址
- 25. 如何停止python中运行的PING
- 26. 在PHP中执行ping命令,并在网页上
- 27. Perl:从站点获取所有外部ping命令
- 28. 从Ping命令获取IP地址的VB脚本
- 29. 批处理文件 - 从ping命令获取ip
- 30. 我想ping主机后得到ping执行时间和结果字符串
@ bhesh-gurung我开始了一个小的Java库https://code.google.com/p/jpingy/。还有很多工作(今天开始) – tgoossens 2012-08-13 19:55:34