Class: IPAddress::Prefix128

Inherits:
Prefix
  • Object
show all
Defined in:
lib/ipaddress/prefix.rb

Overview

class Prefix32 < Prefix

Instance Attribute Summary

Attributes inherited from Prefix

#prefix

Instance Method Summary collapse

Methods inherited from Prefix

#+, #-, #<=>, #to_i, #to_s

Constructor Details

#initialize(num = 128) ⇒ Prefix128

Creates a new prefix object for 128 bits IPv6 addresses

prefix = IPAddress::Prefix128.new 64
#=> 64


216
217
218
219
220
221
# File 'lib/ipaddress/prefix.rb', line 216

def initialize(num=128)
  unless (1..128).include? num.to_i
    raise ArgumentError, "Prefix must be in range 1..128, got: #{num}"
  end
  super(num.to_i)
end

Instance Method Details

#bitsObject

Transforms the prefix into a string of bits representing the netmask

prefix = IPAddress::Prefix128.new 64

prefix.bits
#=> "1111111111111111111111111111111111111111111111111111111111111111"
    "0000000000000000000000000000000000000000000000000000000000000000"


233
234
235
# File 'lib/ipaddress/prefix.rb', line 233

def bits
  "1" * @prefix + "0" * (128 - @prefix)
end

#to_u128Object

Unsigned 128 bits decimal number representing the prefix

prefix = IPAddress::Prefix128.new 64

prefix.to_u128
#=> 340282366920938463444927863358058659840


246
247
248
# File 'lib/ipaddress/prefix.rb', line 246

def to_u128
  bits.to_i(2)
end