Class: Iface::IpV6Address

Inherits:
IpAddress show all
Defined in:
lib/iface/ip_address.rb

Overview

Represents an IPv6 address

Constant Summary collapse

MASK_32 =
0xffffffffffffffff

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from IpAddress

#==, #cidr_mask, create, #to_i, #to_s

Constructor Details

#initialize(ip_address) ⇒ IpV6Address

Returns a new instance of IpV6Address.

Raises:

  • (ArgumentError)


86
87
88
89
# File 'lib/iface/ip_address.rb', line 86

def initialize(ip_address)
  super
  raise ArgumentError, "Expected IPv6, got IPv4: #{ip_address}" unless @ipaddr.ipv6?
end

Class Method Details

.from_numeric(numeric) ⇒ Object



82
83
84
# File 'lib/iface/ip_address.rb', line 82

def self.from_numeric(numeric)
  new(IPAddr.new_ntoh([(numeric >> 96), (numeric >> 64) & MASK_32, (numeric >> 32) & MASK_32, numeric & MASK_32].pack('N*')))
end

Instance Method Details

#full_cidr_maskObject



95
96
97
# File 'lib/iface/ip_address.rb', line 95

def full_cidr_mask
  128
end

#full_maskObject



91
92
93
# File 'lib/iface/ip_address.rb', line 91

def full_mask
  IPAddr::IN6MASK
end