Mask.rb

This content was produced by an LLM and could include errors.

This script uses ipaddr to calculate and print network masks. It iterates 33 times, demonstrating how subnet masks are progressively generated, ranging from /32 down to /0.

require 'ipaddr'
#=> true

ip = IPAddr.new('255.255.255.255/32')
#=> #<IPAddr: IPv4:255.255.255.255/255.255.255.255>
33.times { |i| puts "#{i}\t#{ip.mask(i)}" }
0	0.0.0.0
1	128.0.0.0
2	192.0.0.0
3	224.0.0.0
4	240.0.0.0
5	248.0.0.0
6	252.0.0.0
7	254.0.0.0
8	255.0.0.0
9	255.128.0.0
10	255.192.0.0
11	255.224.0.0
12	255.240.0.0
13	255.248.0.0
14	255.252.0.0
15	255.254.0.0
16	255.255.0.0
17	255.255.128.0
18	255.255.192.0
19	255.255.224.0
20	255.255.240.0
21	255.255.248.0
22	255.255.252.0
23	255.255.254.0
24	255.255.255.0
25	255.255.255.128
26	255.255.255.192
27	255.255.255.224
28	255.255.255.240
29	255.255.255.248
30	255.255.255.252
31	255.255.255.254
32	255.255.255.255
#=> 33

Ruby 4.0.3