Heads up: This description was created by AI and might not be 100% accurate.
mask.rb
This Ruby code snippet demonstrates how to use the IPAddr
class in the ipaddr
gem to create an IP address object and generate a sequence of subnet masks for it.
The code first requires the ipaddr
gem by calling require 'ipaddr'
. It then creates an instance of the IPAddr
class with the string '255.255.255.255/32'
using the constructor method new()
. The resulting object, stored in the variable ip
, is then used to generate a sequence of subnet masks by calling the mask()
method 33 times and passing each time the index of the iteration as an argument.
Inside the block passed to times()
, the puts
method is called with two arguments: the current value of the index (i
) and the result of the mask()
method call for that index, which returns a string representation of the subnet mask. The resulting output is displayed on the console.
The resulting subnet mask sequence will be in CIDR format (e.g., ‘255.255.255.255/32’) and will include 33 different values, each representing a different subnet mask with a prefix length of 32.
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.4
.