java ping ip工具优化

上一次写的ping ip工具使用起来发现效率不是很高,因为默认ping ip地址需要发送四次数据包。导致ping一个ip时,会消耗很长的时间,为了节省时间,提高效率。结合ping 命令的参数,优化了一下。先熟悉下ping命令参数。

ping ip工具类

## ping 命令参数 ##

ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [-j computer-list] | [-k computer-list] [-w timeout] destination-list
-t Ping 指定的计算机直到中断。
-a 将地址解析为计算机名。
-n count 发送 count 指定的 ECHO 数据包数。默认值为 4。
-l length 发送包含由 length 指定的数据量的 ECHO 数据包。默认为 32 字节;最大值是65,527。
-f 在数据包中发送”不要分段”标志。数据包就不会被路由上的网关分段。
-i ttl 将”生存时间”字段设置为 ttl 指定的值。
-v tos 将”服务类型”字段设置为 tos 指定的值。
-r count 在”记录路由”字段中记录传出和返回数据包的路由。count 可以指定最少 1 台,最多 9 台计算机。
-s count 指定 count 指定的跃点数的时间戳。
-j computer-list 利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
-k computer-list 利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
-w timeout 指定超时间隔,单位为毫秒。
destination-list 指定要 ping 的远程计算机。
实例:
ping ip不带参数
ping ip不带参数
ping ip带参数
这里写图片描述

public class Test {

    /**
     * @description : ping ip工具,优化
     * @date 2016-11-25
     * @param args
     * 
     * 
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Runtime runtime = Runtime.getRuntime(); // 获取当前程序的运行进对象
        Process process = null; // 声明处理类对象
        String line = null; // 返回行信息
        InputStream is = null; // 输入流
        InputStreamReader isr = null; // 字节流
        BufferedReader br = null;
        String ip = "www.baidu.com";
        String type = "-w 3000 -n 1";//-w指定时间间隔,-n:发送几次数据包
        boolean res = false;// 结果
        try {
            process = runtime.exec("ping " + ip + type); // PING
            is = process.getInputStream(); // 实例化输入流
            isr = new InputStreamReader(is);// 把输入流转换成字节流
            br = new BufferedReader(isr);// 从字节中读取文本
            while ((line = br.readLine()) != null) {
                if (line.contains("TTL")) {
                    res = true;
                    break;
                }
            } 
            is.close();
            isr.close();
            br.close();
            if (res) {
                System.out.println("ping 通  ...");
            } else {
                System.out.println("ping 不通...");
            }

        } catch (IOException e) {
             e.printStackTrace();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值