module IPAddress::IPAddress

Public Class Methods

parse(str) click to toggle source

Parse the argument string to create a new IPv4, IPv6 or Mapped IP object

ip  = IPAddress.parse "172.16.10.1/24"
ip6 = IPAddress.parse "2001:db8::8:800:200c:417a/64"
ip_mapped = IPAddress.parse "::ffff:172.16.10.1/128"

All the object created will be instances of the correct class:

ip.class
  #=> IPAddress::IPv4
ip6.class
  #=> IPAddress::IPv6
ip_mapped.class
  #=> IPAddress::IPv6::Mapped
# File lib/ipaddress.rb, line 42
def IPAddress::parse(str)
  case str
  when %r:.+\./
    IPAddress::IPv6::Mapped.new(str)
  else
    IPAddress::IPv4.new(str) rescue IPAddress::IPv6.new(str)
  end
end