Developer

IPv4 to IPv6 Converter

IPv4-mapped IPv6 form (::ffff: plus the dotted IPv4 address).

Loading interactive tool…

Embed this tool on your site

About this tool

IPv4 to IPv6 Converter on UtilityKit turns a dotted-decimal IPv4 address into its IPv4-mapped IPv6 form in your browser. Type an address like 192.168.1.1, click Convert, and the tool validates each octet (0-255) and shows ::ffff:192.168.1.1, the notation defined in RFC 4291 for representing an IPv4 address inside the IPv6 address space. A Copy IPv6 button copies the result. That is the only output: the tool does not produce the fully expanded hexadecimal form, a 6to4 (2002::/16) prefix, ip6.arpa names, or convert IPv6 back to IPv4. The mapped form is what dual-stack servers print when an IPv4 client connects to a socket bound to ::, so it is handy for developers matching log entries to IPv4 firewall rules, writing socket code that handles both address families, or debugging mixed-mode networking in Docker, Kubernetes and cloud environments.

Why use it

  • Dual-Stack Debugging: Modern operating systems and containers report IPv4 connections as ::ffff: addresses in logs and socket APIs. Convert an IPv4 address to search logs or correlate IPv4 firewall rules with IPv6 socket output.

  • Standard Notation: The output uses the RFC 4291 IPv4-mapped prefix ::ffff:0:0/96 written in the mixed form ::ffff:a.b.c.d accepted by inet_pton and most networking libraries.

  • Socket Code Reference: When writing cross-family socket code in Python, Go, or C, you need the exact ::ffff: form to bind or connect to IPv4 addresses via an IPv6 socket. Verify the format instantly.

  • Input Validation: Each octet is checked to be 0-255, so typos like 192.168.1.300 are caught before they end up in a configuration file.

  • No Server Required: The conversion runs entirely in your browser — no internal IP addresses are transmitted to external services.

How to use

  1. Enter a dotted-decimal IPv4 address (e.g. 203.0.113.45) into the IPv4 address field. Private, public, loopback, and multicast addresses are all accepted.
  2. Click Convert. The IPv4-mapped IPv6 form appears below: ::ffff: followed by the original dotted-quad (e.g. ::ffff:203.0.113.45).
  3. If any octet is outside 0-255 or the address is not four dotted numbers, the output shows Invalid IPv4 address and a hint explains the expected format.
  4. Click Copy IPv6 to copy the mapped address for a config file, test or log search.

When it helps

  • When your application logs show ::ffff: addresses and you want the exact mapped string for an IPv4 client to search for.
  • When writing IPv6 socket code that needs to accept IPv4 connections and you need the exact ::ffff: syntax for bind() or connect() calls.
  • When writing tests or fixtures for dual-stack code that must handle both 10.0.0.5 and ::ffff:10.0.0.5.
  • When migrating an application from IPv4-only to dual-stack and you need to document IPv4 addresses with their IPv6-mapped equivalents for firewall rule updates.
  • When studying IPv6 addressing and you want to see how an IPv4 address is written inside the IPv6 address space.

Examples

Public IPv4 to IPv4-mapped IPv6

Input
203.0.113.45
Expected result
::ffff:203.0.113.45

Private LAN address conversion

Input
192.168.1.1
Expected result
::ffff:192.168.1.1

Out-of-range octet

Input
192.168.1.300
Expected result
Invalid IPv4 address (hint: Use dotted IPv4 format like 192.168.1.10 with each octet 0-255.)

Tips

  • When a Node.js or Python server bound to '::' reports a client address of ::ffff:10.0.0.1, strip the ::ffff: prefix to get the real client IPv4 for logging and access-control purposes.
  • 6to4 addresses only work with public IPv4 addresses — if you are behind NAT with a 192.168.x.x address, 6to4 tunnelling will not route correctly and native IPv6 or a configured tunnel broker is needed instead.
  • In Docker networks, container-to-container communication can surface ::ffff: addresses depending on whether the daemon and bridge are dual-stack. Use this tool to verify address mappings when debugging container networking.
  • IPv6 has no concept of broadcast — the IPv4-mapped form is useful for representing addresses in dual-stack code but does not grant broadcast behaviour on the IPv6 side.
  • When writing iptables or nftables rules for a dual-stack host, remember that ip6tables rules on ::ffff: mapped addresses are separate from ip4tables rules on the same IPv4 address — both sets of rules may need updating.

Frequently Asked Questions

What is an IPv4-mapped IPv6 address?
An IPv4-mapped IPv6 address embeds a 32-bit IPv4 address in the last four bytes of a 128-bit IPv6 address, preceded by 80 zero bits and 16 one-bits. Written as ::ffff:x.x.x.x, it allows IPv6 sockets to accept IPv4 connections transparently on dual-stack systems.
What is the difference between IPv4-mapped and IPv4-compatible IPv6 addresses?
IPv4-mapped (::ffff:x.x.x.x, RFC 4291 §2.5.5.2) is used by the OS for representing IPv4 socket connections in IPv6 APIs and is still current. IPv4-compatible (::x.x.x.x, RFC 4291 §2.5.5.1) was a deprecated automatic tunnelling mechanism and should not be used in new deployments.
Does the tool show the expanded hex form, a 6to4 prefix or an ip6.arpa name?
No. The only output is the ::ffff:a.b.c.d mapped form. For reference, ::ffff:192.168.1.1 expands to 0000:0000:0000:0000:0000:ffff:c0a8:0101, because each IPv4 octet becomes two hex digits (192=c0, 168=a8, 1=01, 1=01).
Does this tool support private (RFC 1918) IPv4 addresses?
Yes. Private addresses like 192.168.x.x, 10.x.x.x, and 172.16–31.x.x are converted to the mapped form exactly like public ones. The mapped address only describes the IPv4 address inside IPv6 APIs; it does not make a private address reachable over IPv6.
Why does my web server log show ::ffff:127.0.0.1 instead of 127.0.0.1?
Your server is listening on an IPv6 socket (possibly bound to :: or [::]) and the OS is mapping the IPv4 loopback connection to its IPv6-mapped form. This is normal dual-stack behaviour. The addresses are equivalent — ::ffff:127.0.0.1 represents the same loopback as 127.0.0.1.
Can I convert IPv6 addresses back to IPv4?
Not with this tool; it only accepts dotted IPv4 input. For an IPv4-mapped address, the IPv4 address is simply the part after ::ffff:. Pure IPv6 addresses that are not mapped forms have no equivalent IPv4 address.
Is my IP address sent anywhere?
No. Validation and conversion are a few lines of JavaScript that run in your browser; nothing you type is sent to a server.

Explore the category

Glossary

IPv4-Mapped IPv6 Address
A 128-bit IPv6 address that embeds a 32-bit IPv4 address in its lower bytes, preceded by ::ffff:. Written as ::ffff:x.x.x.x. Used by dual-stack operating systems to represent IPv4 connections in IPv6 socket APIs.
6to4
An IPv6 transition mechanism (RFC 3056) that tunnels IPv6 packets over IPv4 infrastructure by embedding the public IPv4 address in the 2002::/16 prefix range. Largely superseded by native IPv6 deployment.
Dual Stack
A network configuration where a host, interface, or application supports both IPv4 and IPv6 simultaneously. The OS maps IPv4 connections to IPv6 socket APIs using ::ffff: addresses.
Compressed IPv6 Notation
The abbreviated IPv6 text format defined in RFC 5952, where one or more consecutive groups of all-zero bits are replaced by :: and leading zeros in each group are omitted. For example, 0000:0000:0000:0000:0000:ffff:c0a8:0101 compresses to ::ffff:192.168.1.1.
ip6.arpa
The DNS zone used for IPv6 reverse lookups. An IPv6 address is expanded to its full 32-nibble form, reversed, and appended with .ip6.arpa to form the PTR record name.
RFC 4291
The IETF standard defining IPv6 addressing architecture, including address types, scopes, and special-purpose prefixes such as ::ffff:0:0/96 (IPv4-mapped) and ::1/128 (loopback).
A LITTLE HELP. A LOT DONE.
Good tools.
Great flow.

Your shortcut to the everyday. Create, convert, calculate,
and get back to what you love.

✓ Free to use✓ No sign-up✓ 500+ possibilities