Class: IPSocket
Relationships & Source Files | |
Inherits: | Object |
Defined in: | lib/ipaddr.rb |
Class Method Summary
-
.getaddress(s)
Returns a
String
based representation of a valid DNS hostname, IPv4 or IPv6 address. - .getaddress_orig private
- .valid_v6?(addr) ⇒ Boolean private
Class Method Details
.getaddress(s)
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 'lib/ipaddr.rb', line 651
def getaddress(s) if valid_v6?(s) s else getaddress_orig(s) end end
.getaddress_orig (private)
[ GitHub ]# File 'lib/ipaddr.rb', line 640
alias getaddress_orig getaddress
.valid_v6?(addr) ⇒ Boolean
(private)
# File 'lib/ipaddr.rb', line 621
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