IPv6 to IPv4 Converter
Extract the IPv4 address embedded inside an IPv6 address. Several transition schemes carry an IPv4 address in specific bits, and this tool identifies which one is in use — mapped, NAT64, 6to4 or Teredo — and pulls the address back out.
Not every address has an IPv4 equivalent, but the IPv4 to IPv6 converter covers the common cases and the Subnet / CIDR Calculator handles the network.
How to use the IPv6 to IPv4
- 1 Paste the IPv6 address you want to inspect.
- 2 Read the normalised form, with leading zeros stripped and the longest zero run compressed.
- 3 See any embedded IPv4 address extracted from the mapped, NAT64, 6to4 or Teredo forms.
- 4 Use the output to check which transition mechanism an address belongs to.
Why there is no general conversion
IPv6 and IPv4 are separate protocols with different address lengths, so an arbitrary IPv6 address has no IPv4 equivalent. Conversion only makes sense for the transition mechanisms that deliberately embed an IPv4 address inside an IPv6 one. This tool detects those schemes and extracts the address they carry.
- IPv4-mapped and IPv4-compatible
- NAT64 well-known and local prefixes
- 6to4 and Teredo tunnels
- IPv6 normalisation: expanded and compressed
- Build an embedding from an IPv4 address
The embedding schemes
IPv4-mapped addresses take the form ::ffff:a.b.c.d and appear when an IPv4 socket is presented as IPv6. NAT64 uses 64:ff9b::/96 to let IPv6-only hosts reach IPv4 servers. 6to4 (2002::/16) carries the tunnel endpoint address in bits 16 to 48, and Teredo (2001::/32) obfuscates the client address by flipping its bits.
Frequently asked questions
What is the difference between ::ffff:192.0.2.1 and a real IPv6 address?
The ::ffff: form is IPv4-mapped — it is a way of representing an IPv4 address inside an IPv6 container, mostly used inside software. It is not globally routable over IPv6 and says nothing about the host having IPv6 connectivity.
How can I tell which transition mechanism an address uses?
By its prefix. 64:ff9b::/96 is NAT64, 2002::/16 is 6to4, and 2001::/32 is Teredo. Each embeds the IPv4 address in a different position, which is why extraction needs to know the mechanism rather than just looking for four decimal groups.
Why does the same IPv6 address look different in two places?
Because RFC 5952 allows a canonical short form. Leading zeros in each group can be dropped and one run of zero groups replaced by ::, so 2001:0db8:0000:0000:0000:0000:0000:0001 and 2001:db8::1 are the same address. The tool always shows the canonical form.
Related Unit & Data Converters
You might also need
Tools from other categories that people pair with the IPv6 to IPv4: