java - 有没有更好的方法来使用 Java 中的特定本地 IP 地址执行 ICMP Ping
问题描述
我想用Java实现一个ICMP ping程序,有两种方法可以实现。
使用 InetAddress:
InetAddress inet = InetAddress.getByName(args[0]); inet.isReachable(1000);
使用进程+命令:
Runtime rt = Runtime.getRuntime(); Process mypro = rt.exec("ping " + args[0]); mypro.waitFor();
但它们都有缺点:
第一种方式:
- 我不能标明Local IP,标明TOS,如:ping -I localip DestIP -Q 120
第二种方式:
- 它确实可以满足所有要求,但我担心性能,因为每个 ping 都在创建一个进程,如果我有数百万个 ping,那将是可怕的。
解决方案
推荐阅读
- javascript - React Links 跨页面传递变量
- mysql - SQL查询比较日期和时间mysql
- python - 使用破折号将小部件值导出到文件中
- c - 如何将二进制 0001,0010,0100,1000 转换为 0,1,2,3 以索引 4x4 二维数组?
- postgresql - 如何小写表中每一行的 JSONB 字符串数组的所有元素
- javascript - 下载 torrent 文件到谷歌驱动器或兆驱动器
- sql - 将行分组到范围内,同时也显示间隙
- javascript - 将 express 控制器拆分为多个文件
- np - SAT 是 NP 完备的,那么为什么我们没有 k-SAT 对于任意 k 值是 NP 完备的
- oop - 为什么我的表返回 NIL 并且没有填充?