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