确认IP是否在CIDR列表中

确认IP是否在CIDR列表中

给定一个 IPv4 地址,是否可以验证该 IP 是否在 CIDR 列表的范围内?

例如,如果我有以下 CIDR,有什么方法可以检查是否100.31.255.4在任何 CIDR 范围内?

100.16.0.0/12
100.46.0.0/12
100.100.0.0/24
100.100.5.0/22

最好使用内置的 Mac/BSD 工具来完成。

答案1

使用grepcidr网络块列表如下list

$ echo '100.31.255.4' | grepcidr -f list
100.31.255.4

$ echo '10.31.255.4' | grepcidr -f list
(no output)

作为测试:

if printf '%s\n' "$ipaddr" | grepcidr -f list >/dev/null; then
    printf '%s is in the list\n' "$ipaddr"
else
    printf '%s is not in the list\n' "$ipaddr"
fi

相关内容