IPアドレスの範囲からCIDRを計算する
動機
プライベートアドレス(RFC1918)の範囲ではないCIDRを知りたかった。
AWS のセキュリティグループで指定できるのがCIDRなので計算しなくてはならなかった。
要件
IPv4 のアドレス範囲(0.0.0.0 - 255.255.255.255)のうち、
プライベートアドレス(クラスA:10.0.0.0/8、クラスB:172.16.0.0/12、クラスC:192.168.0.0/16)を除いたもの。
つまり、
- 0.0.0.0 - 9.255.255.255
- 11.0.0.0 - 172.15.255.255
- 172.32.0.0 - 192.167.255.255
- 192.169.0.0 - 255.255.255.255(クラスE[240.0.0.0 - 255.255.255.255]も含めてます)
やり方
ipcalc
コマンドを利用する。
ipcalc -r ${FROM_IP} ${TO_IP}
# または
ipcalc ${FROM_IP} - ${TO_IP}
結果
$ ipcalc -r 0.0.0.0 9.255.255.255
deaggregate 0.0.0.0 - 9.255.255.255
0.0.0.0/5
8.0.0.0/7
$ ipcalc -r 11.0.0.0 172.15.255.255
deaggregate 11.0.0.0 - 172.15.255.255
11.0.0.0/8
12.0.0.0/6
16.0.0.0/4
32.0.0.0/3
64.0.0.0/2
128.0.0.0/3
160.0.0.0/5
168.0.0.0/6
172.0.0.0/12
$ ipcalc -r 172.32.0.0 192.167.255.255
deaggregate 172.32.0.0 - 192.167.255.255
172.32.0.0/11
172.64.0.0/10
172.128.0.0/9
173.0.0.0/8
174.0.0.0/7
176.0.0.0/4
192.0.0.0/9
192.128.0.0/11
192.160.0.0/13
$ ipcalc -r 192.169.0.0 255.255.255.255
deaggregate 192.169.0.0 - 255.255.255.255
192.169.0.0/16
192.170.0.0/15
192.172.0.0/14
192.176.0.0/12
192.192.0.0/10
193.0.0.0/8
194.0.0.0/7
196.0.0.0/6
200.0.0.0/5
208.0.0.0/4
224.0.0.0/3
CIDR -> Ip range したい場合
ipcalc ${CIDR}
で出来ます。
$ ipcalc 192.168.0.0/24
Address: 192.168.0.0 11000000.10101000.00000000. 00000000
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111
=>
Network: 192.168.0.0/24 11000000.10101000.00000000. 00000000
HostMin: 192.168.0.1 11000000.10101000.00000000. 00000001
HostMax: 192.168.0.254 11000000.10101000.00000000. 11111110
Broadcast: 192.168.0.255 11000000.10101000.00000000. 11111111
Hosts/Net: 254 Class C, Private Internet
感想
ipcalc コマンドは今回のようにIP range -> CIDR だけではなく、CIDR -> IP range もできるので便利に使えそうです。
調べた後にこれと同じことができるページ1があることを知りました...
-
IPADDRESSGUIDE: https://www.ipaddressguide.com/cidr ↩
Author And Source
この問題について(IPアドレスの範囲からCIDRを計算する), 我々は、より多くの情報をここで見つけました https://qiita.com/athagi/items/54602d75b771d255ea28著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .