1
2

More than 3 years have passed since last update.

IPアドレスの範囲からCIDRを計算する

Last updated at Posted at 2021-01-23

動機

プライベートアドレス(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があることを知りました...

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2