class Subnet::Prefix32

Defined in:

subnet/prefix.cr

Constant Summary

IN4MASK = 4294967295_i64

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from class Subnet::Prefix

+(other) +, -(other) -, <=>(other) <=>, prefix : Int32 prefix, prefix=(prefix : Int32) prefix=, to_i : Int32 to_i, to_s(io) to_s

Constructor methods inherited from class Subnet::Prefix

new(num) new

Constructor Detail

def self.new(num) #

Creates a new prefix object for 32 bits IPv4 addresses

prefix = Subnet::Prefix32.new 24
# => 24

[View source]

Class Method Detail

def self.parse_netmask(netmask) #

Creates a new prefix by parsing a netmask in dotted decimal form

prefix = Subnet::Prefix32::parse_netmask "255.255.255.0"
  #=> 24

[View source]

Instance Method Detail

def [](index) #

Shortcut for the octecs in the dotted decimal representation

prefix = Subnet::Prefix32.new 24

prefix[2]
# => 255

[View source]
def bits #

Transforms the prefix into a string of bits representing the netmask

prefix = Subnet::Prefix32.new 24

prefix.bits
# => "11111111111111111111111100000000"

[View source]
def host_prefix #

Returns the length of the host portion of a netmask.

prefix = Prefix32.new 24

prefix.host_prefix
# => 8

[View source]
def hostmask #

The hostmask is the contrary of the subnet mask, as it shows the bits that can change within the hosts

prefix = Subnet::Prefix32.new 24

prefix.hostmask
# => "0.0.0.255"

[View source]
def hostmask_octets #

Returns an array of octets representing the hostmask

prefix = Subnet::Prefix32.new 24

prefix.hostmask_octets
# => StaticArray["0", "0", "0", "255"]

[View source]
def octets #

An array of octets of the IPv4 dotted decimal format

prefix = Subnet::Prefix32.new 24

prefix.octets
# => [255, 255, 255, 0]

[View source]
def to_ip #

Gives the prefix in IPv4 dotted decimal format, i.e. the canonical netmask we're all used to

prefix = Subnet::Prefix32.new 24

prefix.to_ip
# => "255.255.255.0"

[View source]
def to_u32 #

Unsigned 32 bit number representing the prefix.

prefix = Subnet::Prefix32.new 24

prefix.to_u32

#=> 4294967040

[View source]