Heads up: This description was created by AI and might not be 100% accurate.
mask.rb
This Ruby code snippet demonstrates the use of the IPAddr
class to create an IP address object (255.255.255.255/32
) and then iterates 33 times, generating and printing progressively larger subnet masks (from 0 to 32 bits) for that IP address using the mask()
method. The output shows how the mask changes the network portion of the IP address.
Ruby code snippet
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
Executed with Ruby 3.4.5
.