fping

By | 2026年1月7日

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 解析逻辑最纯粹。)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注