Ipv6Mapped class
It is usually identified as a IPv4 mapped IPv6 address, a particular IPv6 address which aids the transition from IPv4 to IPv6. The structure of the address is
::ffff:w.y.x.z
where w.x.y.z is a normal IPv4 address. For example, the following is a mapped IPv6 address:
::ffff:192.168.100.1
IPAddress is very powerful in handling mapped IPv6 addresses, as the IPv4 portion is stored internally as a normal IPv4 object. Let's have a look at some examples. To create a mapped address, just use the class builder itself
ip6 = IPAddress::IPv6::Mapped."::ffff:172.16.10.1/128"
or just use the wrapper method
ip6 = IPAddress "::ffff:172.16.10.1/128"
Let's check it's really a mapped address:
ip6.mapped? /// true
ip6.to_string /// "::FFFF:172.16.10.1/128"
Now with the +ipv4+ attribute, we can easily access the IPv4 portion of the mapped IPv6 address:
ip6.ipv4.address /// "172.16.10.1"
Internally, the IPv4 address is stored as two 16 bits groups. Therefore all the usual methods for an IPv6 address are working perfectly fine:
ip6.to_hex /// "00000000000000000000ffffac100a01"
ip6.address /// "0000:0000:0000:0000:0000:ffff:ac10:0a01"
A mapped IPv6 can also be created just by specify the address in the following format:
ip6 = IPAddress "::172.16.10.1"
That is, two colons and the IPv4 address. However, as by RFC, the ffff group will be automatically added at the beginning
ip6.to_string => "::ffff:172.16.10.1/128"
making it a mapped IPv6 compatible address.
Creates a IPv6 IPv4-mapped address
ip6 = IPAddress::IPv6::Mapped."::ffff:172.16.10.1/128"
ipv6.ipv4.class /// IPAddress::IPv4
An IPv6 IPv4-mapped address can also be created using the IPv6 only format of the address:
ip6 = IPAddress::IPv6::Mapped."::0d01:4403"
ip6.to_string /// "::ffff:13.1.68.3"
Constructors
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited