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
getaddress_orig(s)
Alias for: getaddress

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