使用java发送ping命令

本文介绍使用Java实现网络状况监测的方法,通过两种方式发送Ping命令:一是调用Runtime.getRuntime().exec()执行系统Ping命令;二是使用InetAddress类的isReachable()方法检查主机可达性。这两种方法适用于自动化监测网络状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在项目中需要测试网络状况,决定用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) {

        }
    }

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值