class Net::IPAddress::V6

@todo Implement :)

Constants

DELIMITER
FULL_MASK
SQUEEZE

Public Class Methods

bit_length() click to toggle source

@return [128]

# File lib/net/ipaddress/version6.rb, line 18
def bit_length
  128
end
octets_for_mask(str) click to toggle source

Always “mask == prefix” on IPv6 address, this is as not as IPv4's rule

# File lib/net/ipaddress/version6.rb, line 49
def octets_for_mask(str)
  case str
  when /\A(0|[1-9]\d*)\z/
    prflen = Regexp.last_match(1).to_i
    raise InvalidAddress unless (0..128).cover?(prflen)

    PRIFIXIES[prflen]
  when //
    # noop
  end
end
Also aliased as: octets_for_prefix
octets_for_prefix(str)
Alias for: octets_for_mask
octets_for_rfc4291(str) click to toggle source
# File lib/net/ipaddress/version6.rb, line 37
def octets_for_rfc4291(str)
  case str
  when /\A(.*)::(.*)\z/
    parse_squeezed(Regexp.last_match(1), Regexp.last_match(2))
  when /\A([\da-f]{1,4}:){7}[\da-f]{1,4}\z/i
    octets_for_simple(str)
  else
    raise InvalidAddress
  end
end
octets_for_simple(str) click to toggle source
# File lib/net/ipaddress/version6.rb, line 63
def octets_for_simple(str)
  sections = str.split(DELIMITER)
  raise InvalidAddress unless sections.length == 8

  octets = []
  sections.each do |section|
    if /\A([\da-fA-F]{0,2})([\da-fA-F]{1,2})\z/ =~ section
      # empty is 0
      octets << Regexp.last_match(1).to_i(16) << Regexp.last_match(2).to_i(16)
    else
      raise InvalidAddress
    end
  end

  octets
end
octets_for_squeezed(left_sections, right_sections) click to toggle source
# File lib/net/ipaddress/version6.rb, line 80
def octets_for_squeezed(left_sections, right_sections)
  llen, rlen = left_sections.length, right_sections.length
  unless (1..7).cover?(llen + rlen)
    raise InvalidAddress
  end
end
parse(str) click to toggle source
# File lib/net/ipaddress/version6.rb, line 22
def parse(str)
  case str
  when /[^0-9a-fA-F:.]/
    raise InvalidAddress
  when Version4::OCTETS_PATTERN
    parse_ipv4friend(str)
  when /\A(.+?)(?:#{MASK_SEPARATOR}(.+))?\z/o
    octets = octets_for_rfc4291(Regexp.last_match(1))
    mask = Regexp.last_match(2) ? octets_for_mask(Regexp.last_match(2)) : FULL_MASK
    new(octets, mask)
  else
    raise InvalidAddress
  end
end
parse_ipv4compatible(str) click to toggle source

@todo RFC3513

# File lib/net/ipaddress/version6.rb, line 124
def parse_ipv4compatible(str)
  if /\A(?:::|(?:0:){6})#{Version4::OCTETS_PATTERN}\z/o.match?(str)
    # noop
  end
end
parse_ipv4friend(str) click to toggle source

the word “friend” was defined by me :), for daily use cases

# File lib/net/ipaddress/version6.rb, line 109
def parse_ipv4friend(str)
  parse_ipv4compatible(str)
rescue InvalidAddress
  parse_ipv4mapped(str)
end
parse_ipv4mapped(str) click to toggle source

@todo

# File lib/net/ipaddress/version6.rb, line 116
def parse_ipv4mapped(str)
  if /\A(?:::|(?:0:){5})f{4}#{Version4::OCTETS_PATTERN}\z/o.match?(str)
    # noop
  end
end
parse_linklocal(str) click to toggle source
# File lib/net/ipaddress/version6.rb, line 102
def parse_linklocal(str)
  if /\A(%\S+?)\z/.match?(str)
    # noop
  end
end
parse_rfc5952(str) click to toggle source

@todo

# File lib/net/ipaddress/version6.rb, line 88
def parse_rfc5952(str)
end
strict?(str)
Alias for: valid_rfc5952?
valid?(str)
Alias for: valid_rfc4291?
valid_rfc4291?(str) click to toggle source
# File lib/net/ipaddress/version6.rb, line 91
def valid_rfc4291?(str)
end
Also aliased as: valid?
valid_rfc5952?(str) click to toggle source

@todo

# File lib/net/ipaddress/version6.rb, line 97
def valid_rfc5952?(str)
end
Also aliased as: strict?

Public Instance Methods

adminlocal?() click to toggle source
# File lib/net/ipaddress/version6.rb, line 205
def adminlocal?
end
allnode_multicast?() click to toggle source
# File lib/net/ipaddress/version6.rb, line 163
def allnode_multicast?
end
anycast?() click to toggle source
# File lib/net/ipaddress/version6.rb, line 166
def anycast?
end
bmwg?() click to toggle source
# File lib/net/ipaddress/version6.rb, line 193
def bmwg?
end
defaultroute?() click to toggle source
# File lib/net/ipaddress/version6.rb, line 199
def defaultroute?
end
example?()
Alias for: test?
global?() click to toggle source
# File lib/net/ipaddress/version6.rb, line 172
def global?
end
inspect() click to toggle source
# File lib/net/ipaddress/version6.rb, line 147
def inspect
end
interfacelocal?() click to toggle source
# File lib/net/ipaddress/version6.rb, line 202
def interfacelocal?
end
ipv4address?() click to toggle source
# File lib/net/ipaddress/version6.rb, line 131
def ipv4address?
  false
end
ipv4mapped?() click to toggle source
# File lib/net/ipaddress/version6.rb, line 181
def ipv4mapped?
end
ipv6address?() click to toggle source
# File lib/net/ipaddress/version6.rb, line 135
def ipv6address?
  true
end
linklocal?() click to toggle source
# File lib/net/ipaddress/version6.rb, line 169
def linklocal?
end
local?() click to toggle source
# File lib/net/ipaddress/version6.rb, line 175
def local?
end
loopback?() click to toggle source
# File lib/net/ipaddress/version6.rb, line 184
def loopback?
end
multicast?() click to toggle source
# File lib/net/ipaddress/version6.rb, line 159
def multicast?
  @octets.first == 255
end
orchid?() click to toggle source
# File lib/net/ipaddress/version6.rb, line 196
def orchid?
end
organizationlocal?() click to toggle source
# File lib/net/ipaddress/version6.rb, line 211
def organizationlocal?
end
sections() click to toggle source
# File lib/net/ipaddress/version6.rb, line 139
def sections
  @octets.each_slice(2).map { |fst, snd| (fst * 255) + snd }
end
sitelocal?() click to toggle source
# File lib/net/ipaddress/version6.rb, line 208
def sitelocal?
end
teredo?() click to toggle source
# File lib/net/ipaddress/version6.rb, line 190
def teredo?
end
test?() click to toggle source
# File lib/net/ipaddress/version6.rb, line 214
def test?
end
Also aliased as: example?
to_s() click to toggle source
# File lib/net/ipaddress/version6.rb, line 143
def to_s
  sections.map { |sect| sect.to_s(16) }.join(DELIMITER)
end
to_s_rfc5952() click to toggle source
# File lib/net/ipaddress/version6.rb, line 153
def to_s_rfc5952
end
to_short_str() click to toggle source
# File lib/net/ipaddress/version6.rb, line 150
def to_short_str
end
unicast?() click to toggle source
# File lib/net/ipaddress/version6.rb, line 156
def unicast?
end
uniquelocal?() click to toggle source
# File lib/net/ipaddress/version6.rb, line 178
def uniquelocal?
end
unspecified?() click to toggle source
# File lib/net/ipaddress/version6.rb, line 187
def unspecified?
end