module IPSocket
Public Class Methods
getaddress(s)
click to toggle source
Returns a String
based representation of a valid DNS hostname, IPv4 or IPv6 address.
IPSocket.getaddress 'localhost' #=> "::1" IPSocket.getaddress 'broadcasthost' #=> "255.255.255.255" IPSocket.getaddress 'www.ruby-lang.org' #=> "221.186.184.68" IPSocket.getaddress 'www.ccc.de' #=> "2a00:1328:e102:ccc0::122"
# File ipaddr.rb, line 833 def getaddress(s) if valid_v6?(s) s else getaddress_orig(s) end end
Also aliased as: getaddress_orig
Private Class Methods
valid_v6?(addr)
click to toggle source
# File ipaddr.rb, line 803 def valid_v6?(addr) case addr when IPAddr::RE_IPV6ADDRLIKE_FULL if $2 $~[2,4].all? {|i| i.to_i < 256 } else true end when IPAddr::RE_IPV6ADDRLIKE_COMPRESSED if $4 addr.count(':') <= 6 && $~[4,4].all? {|i| i.to_i < 256} else addr.count(':') <= 7 end else false end end