IPv4アドレスが与えられたら、IPがCIDRリストの範囲内にあるかどうかを確認できますか?
100.31.255.4
たとえば、次のCIDRがある場合に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