module IPSocket - ipaddr: Ruby Standard Library Documentation

# 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