class Net::IPAddress::Version6
@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_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
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
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