IPv4 vs IPv6: what actually changes for you
Check your IP on two different days and you may see 203.0.113.45 once and something like 2001:db8:4a2b:7c00:1d3:9f2:aa41:6e05 the next. Same connection, two kinds of address. Here's what the second one changes for you, and what it doesn't.
The short history
An IPv4 address is 32 bits, written as four numbers: 192.0.2.1. That allows about 4.3 billion addresses, and the central pool had run out by 2011. Since then, sharing (NAT at home, CGNAT at providers) has kept IPv4 going.
An IPv6 address is 128 bits, written as eight groups of hexadecimal: 2001:0db8:1234:5678:0000:0000:0000:0001, which may be shortened by dropping leading zeros and replacing one run of zero groups with ::, giving 2001:db8:1234:5678::1. There are enough for every device to have its own globally unique addresses, many times over.
A worked example: one address, many notations
To see how the two systems relate, we put the documentation address 192.0.2.1 into iplover's IP converter:
| Dotted decimal | 192.0.2.1 |
|---|---|
| One number | 3221225985 |
| Hexadecimal | 0xC0000201 |
| Binary | 11000000.00000000.00000010.00000001 |
| IPv4-mapped IPv6 | ::ffff:192.0.2.1, also written ::ffff:c000:201 |
| 6to4 prefix | 2002:c000:201::/48 |
Two lessons hide in this table. First, an IPv4 address is just a 32-bit number; the dots are for humans. C0 00 02 01 in hex is 192 0 2 1. Second, IPv6 can carry an IPv4 address inside it. You'll meet ::ffff:192.0.2.1 in server logs: it's a plain IPv4 visitor, recorded by software that handles both protocols on one socket. Treat it as 192.0.2.1. (The 6to4 form belongs to an old transition method that's now deprecated; you'll only see it in old documentation.)
What changes for you
Each device has a public address
With IPv4 at home, every device hides behind your router's one address. With IPv6, your provider gives your home a block (commonly a /56 or a /48), your router hands each device addresses from it, and every one is reachable in principle. In practice your router's firewall blocks unsolicited incoming connections by default, which gives you the same protection NAT gave you by accident.
Port forwarding becomes a firewall rule
There's nothing to translate, so there's no forwarding. To make a home server reachable over IPv6, you allow the port for that device's address in the router's IPv6 firewall settings. Behind CGNAT, this is often the only way to accept incoming connections at all.
Your devices change address on purpose
To stop sites from following one device by its address, modern systems use temporary “privacy” addresses for outgoing connections and replace them regularly, typically daily. Windows, macOS, iOS and Android do this by default. So seeing a different IPv6 address tomorrow is normal, but the first half (the network prefix from your provider) usually stays the same for longer, and that half still identifies your connection.
Sites see whichever you used
When both work, your device tries IPv6 first and falls back to IPv4 quickly if it's slow. A site that only has IPv4 sees your IPv4 address; one with both usually sees IPv6. That's why iplover's homepage may show a different kind of address than another checker.
If you see this, do this
| Situation | What it means | What to do |
|---|---|---|
| iplover shows an IPv6 address | Your connection has working IPv6 | Nothing. Your IPv4 address may differ and be shared. |
| A VPN is on, but sites see an IPv6 address from your provider | The VPN tunnels only IPv4: an IPv6 leak | Turn on the VPN's IPv6 support or its leak protection; or disable IPv6 on the device while it's connected. |
| A game or app says you need port forwarding, and you're behind CGNAT | No incoming IPv4 | Use IPv6 if the other side supports it; otherwise see the CGNAT guide. |
Logs show ::ffff: followed by an IPv4 address | An IPv4 visitor written in IPv6 form | Read it as the IPv4 address after the prefix. |
| You want to check your device's own addresses | See what it was given | ipconfig on Windows, ip -6 addr on Linux, System Settings → Network → Details on a Mac. |
What doesn't change
An IPv6 address reveals no more about you than an IPv4 one: the provider, a rough location, and nothing like a home address. It isn't “less private” because it's longer; with temporary addresses it can even change more often. And most of what you do online works identically on both: the difference matters only when you run servers, use VPNs or troubleshoot.
Sources
Official documents we used to check the facts in this guide.
- RFC 8200: Internet Protocol, Version 6 (IPv6) Specification
- RFC 5952: A Recommendation for IPv6 Address Text Representation
- RFC 8981: Temporary Address Extensions for Stateless Address Autoconfiguration in IPv6
- RFC 8305: Happy Eyeballs Version 2: Better Connectivity Using Concurrency
- RFC 4291: IP Version 6 Addressing Architecture (IPv4-mapped addresses)
- RFC 7526: Deprecating the Anycast Prefix for 6to4 Relay Routers
- RFC 6333: Dual-Stack Lite (notes the IANA IPv4 pool was depleted)
- IANA: IPv4 Address Space Registry