使用java发送ping命令
在项目中需要测试网络状况,决定用ping命令来查看当前的网络情况,起初手动输入ping命令。
随后要增加设备并长期监测网络状态,这样显然不能在手动了,对cmd的脚本也不熟练,决定还是使用java。
查了一下,果然使用java是没问题的。
查了一下,大家有 很多方式去实现。有人自己根据ICMP协议去,自己做了一个ping,有人通过jdk中已经封装好了的方法去实现,我决定还是直接调用jdk中去调用控制台发送ping命令。
第一种:
@Test
public void test01() {
//查看一下当前系统的编码方式
//因为是调用系统的ping命令 返回结果是使用系统的编码的
System.out.println(System.getProperty("sun.jnu.encoding"));;
String line = null;
try {
Process pro = Runtime.getRuntime().exec("ping " + "192.168.1.101 -n 5");
BufferedReader buf = new BufferedReader(new InputStreamReader(
pro.getInputStream(),"GBK"));
while ((line = buf.readLine()) != null)
System.out.println(line);
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
第二种:
@Test
public void test02() {
try {
InetAddress host = InetAddress.getByName("192.168.1.101");
//3000 为超时时间
boolean reachable = host.isReachable(3000);
System.out.println(reachable);
} catch (IOException e) {
}
}