Guide
The ways an IPv4 address appears inside IPv6
IPv4 and IPv6 are separate address spaces, so there is no single correct way to convert one into the other. What exists is a handful of agreed embeddings that place a 32-bit IPv4 address inside a 128-bit IPv6 one for specific purposes. The page takes an IPv4 address and shows every standard embedding so you can recognise the one you see in a log, a socket API or a NAT64 deployment.
The forms and what each is for
IPv4-mapped (::ffff:a.b.c.d, RFC 4291) is used by software, not by networks. When an IPv6 socket accepts a connection from an IPv4 client, the operating system presents the peer as a mapped address. Packets never travel with this address on the wire. NAT64 (64:ff9b::/96, RFC 6052) is a real network mechanism: an IPv6-only client reaches an IPv4 server by sending to the well-known prefix followed by the server’s IPv4 address, and a NAT64 gateway translates. Providers can also use their own prefix instead of the well-known one. 6to4 (2002::/16, RFC 3056) derived a /48 from a public IPv4 address; it is deprecated, and RFC 7526 removed the relay anycast address that made it work. The IPv4-compatible form ::a.b.c.d was an early transition idea that RFC 4291 deprecated.
Reading the page
Enter one IPv4 address and the page lists the mapped address in short and full form, the NAT64 address, the 6to4 prefix and the compatible form, each with a copy button and a one-line note. The short forms follow RFC 5952, so groups are lower case and the longest run of zeros is replaced by ::. Both the hexadecimal ending (c000:221) and the dotted ending (192.0.2.33) are given where the notation allows it, because logs use both.
Where the details matter
Firewall rules written for IPv4 addresses may not match the mapped form that dual-stack services log. Allow lists and rate limiters need to normalise by stripping ::ffff: before comparing. On the other side, DNS64 resolvers synthesise AAAA answers by embedding the server’s IPv4 address into the NAT64 prefix, so an IPv6-only phone that shows 64:ff9b:: followed by a familiar-looking IPv4 address is using the translator. The page makes these relationships visible and avoids errors when you convert by hand, since the bytes go in as hexadecimal pairs, not decimal numbers.
A worked example
Enter 192.0.2.33, a documentation address. The bytes 192, 0, 2, 33 are c0, 00, 02 and 21. The page returns the mapped address ::ffff:c000:221 (also written ::ffff:192.0.2.33; full form 0000:0000:0000:0000:0000:ffff:c000:0221), the NAT64 address 64:ff9b::c000:221, the 6to4 prefix 2002:c000:221::/48, and the obsolete compatible form ::c000:221.
Limits
None of these results gives a host working IPv6. A routable IPv6 address has to be delegated by your provider or registry. The NAT64 address uses the well-known prefix; if your network runs a gateway with a different prefix, replace the leading part. The page does not test whether a translator exists. To check your real connectivity, use the IPv6 Test.
Related tools
- IPv6 Expander writes any IPv6 address in full.
- IPv6 Compressor shortens addresses to the RFC 5952 form.
- IPv6 Test checks whether your connection reaches IPv6 sites.
- Private IP Checker classifies mapped and ordinary addresses alike.
Checked against the current version of the IPv4 to IPv6 on .

