GitHub地址:https://github.com/schweikert/fping
# ping 单个IP fping 192.168.1.2 # ping 多个IP fping 192.168.1.1 192.168.1.2 192.168.1.3 # 使用 -g 参数来扫描网段(支持CIDR 格式、范围格式) fping -g 192.168.3.0/24 fping -g 192.168.3.220 192.168.3.229 # 静默模式(使用 -q 参数),它会隐藏掉所有过程中的错误提示和 ICMP 反馈,只输出符合条件(-a 存活)的 IP 地址。 fping -aq -g 192.168.3.220 192.168.3.229
只输出存活的主机 (-a):
root@63a831fb0752:/usr/local/apache-tomcat-10.1.42# fping -aq -g 192.168.3.220 192.168.3.229 192.168.3.222 192.168.3.226 192.168.3.227
只输出不可达的主机 (-u):
root@63a831fb0752:/usr/local/apache-tomcat-10.1.42# fping -uq -g 192.168.3.220 192.168.3.229 192.168.3.220 192.168.3.221 192.168.3.223 192.168.3.224 192.168.3.225 192.168.3.228 192.168.3.229
在一次命令中同时获取 存活(Alive) 和 不可达(Unreachable) 的所有结果,并且避开那些烦人的 ICMP Host Unreachable from… 噪音信息(关键是用 “2>/dev/null”,它会把所有类似 ICMP Host Unreachable from… 的报错噪音(属于 stderr)全部扔掉):
root@63a831fb0752:/usr/local/apache-tomcat-10.1.42# fping -g 192.168.3.220 192.168.3.229 2>/dev/null 192.168.3.222 is alive 192.168.3.226 is alive 192.168.3.227 is alive 192.168.3.220 is unreachable 192.168.3.221 is unreachable 192.168.3.223 is unreachable 192.168.3.224 is unreachable 192.168.3.225 is unreachable 192.168.3.228 is unreachable 192.168.3.229 is unreachable
针对 B 类网段兼顾“快”与“准”的生产级命令:
fping -g 192.168.1.1 192.168.3.254 -i 1 -t 200 -r 1 2>/dev/null 参数解释: -i 1 (间隔 1 毫秒:发送不同目标 IP 之间的延迟) -t 200 (超时 200 毫秒:等待最后一个重试包回来的时间) -r 1 (重试 1 次:如果第一个包没通,再重试几次。默认是 3 次。) 2>/dev/null(丢弃 ICMP 错误噪音。你拿到的标准输出只包含 ... is alive 或 ... is unreachable,Java 解析逻辑最纯粹。)