The short version
IPv4 only has 4.3 billion addresses (fully allocated back in 2019), while IPv6 has 340 undecillion (3.4×10³⁸) addresses. Home broadband from major providers now runs dual stack by default (IPv4 + IPv6 simultaneously), and your browser prefers IPv6 when it's available — so the cleanip.io homepage may show you a long "My IP" starting with 2408:8456:.... That's normal — it's not a bug and not a leak. Below we explain what IPv6 is, how it differs from IPv4, and how to manage it.
1. Why IPv6 exists — IPv4 ran out long ago
IPv4 was designed in 1981 (RFC 791) using 32 bits (4 bytes) per address, giving a total of 2³² ≈ 4.3 billion addresses. Designers in the 1980s assumed that would be plenty forever, but they didn't foresee:
- The internet explosion of the 1990s — one IP per PC
- The mobile internet boom of the 2000s — one IP per phone
- The IoT wave of the 2010s — one IP per smart appliance or camera
The IETF formally published IPv6 in 1998 (RFC 2460; the current standard is RFC 8200), using 128 bits (16 bytes) for a total of 2¹²⁸ ≈ 3.4×10³⁸ addresses — spread over the earth's surface, that is more than six billion billion addresses per square millimetre.
But rollout was extremely slow:
| Year | Global IPv6 user share | Key event |
|---|---|---|
| 2010 | 0.5% | IANA warns IPv4 is nearing exhaustion |
| 2012 | 1% | World IPv6 Launch — Google / Facebook enable it permanently |
| 2015 | 10% | US mobile carriers (Verizon / T-Mobile) enforce IPv6-only |
| 2019 | 30% | The global IPv4 address pool is fully allocated |
| 2023 | 40% | China Telecom / China Unicom roll out IPv6 fleet-wide on home broadband |
| 2026 | 45%+ | Widespread adoption across home broadband, 5G, and datacenters |
2. IPv4 vs IPv6 — the core differences
| Property | IPv4 | IPv6 |
|---|---|---|
| Address length | 32 bits (4 bytes) | 128 bits (16 bytes) |
| Address count | 4.3 billion | 3.4×10³⁸ (effectively unlimited) |
| Notation | 192.168.1.1 | 2001:db8::1 (8 groups of 4 hex digits) |
| Header length | 20-60 bytes (variable) | 40 bytes (fixed) |
| NAT | Required (home networks always NAT) | Natively doesn't need NAT |
| Broadcast | Yes (255.255.255.255) | Removed, replaced by multicast |
| Address autoconfiguration | Requires DHCP | SLAAC autoconfiguration / DHCPv6 optional |
| Fragmentation | Routers can fragment | End-to-end fragmentation only (PMTUD enforced) |
| IPsec | Optional | Originally mandatory by design (later made optional) |
| QoS | ToS field | Flow Label field |
3. How to read an IPv6 address at a glance
3.1 Full notation
2001:0db8:85a3:0000:0000:8a2e:0370:73348 groups, each a 4-digit hex number (0-9 / a-f), separated by :. Each group maxes out at ffff = 65535.
3.2 Shorthand rules
- Leading zeros in each group are dropped:
0db8→db8,0000→0 - One or more consecutive all-zero groups can be replaced with :: (only once per address):
2001:db8::8a2e:370:7334= the long address above - Case-insensitive:
2001:DB8::1=2001:db8::1
3.3 Special IPv6 address ranges
| Range | Meaning | IPv4 equivalent |
|---|---|---|
::1/128 | Loopback | 127.0.0.1 |
::/128 | Unspecified (all zeros) | 0.0.0.0 |
fe80::/10 | Link-local (automatic on every interface) | 169.254.x.x |
fc00::/7 | Unique local (private; actually fd00::/8) | 10/8, 192.168/16 |
ff00::/8 | Multicast | 224/4 |
2000::/3 | Global unicast (public IPv6) | Ordinary public IPv4 |
2001:db8::/32 | Reserved for documentation examples | TEST-NET-1/2/3 |
::ffff:0:0/96 | IPv4-mapped (embeds a v4 address) | — |
See the full guide to private IP addresses for details.
4. What is dual stack — running IPv4 and IPv6 together
Nearly all home broadband, datacenter, and cloud servers today run dual stack (both IPv4 and IPv6 configured on the same interface), with the application layer automatically picking based on the destination address.
Browser visits google.com:
↓
DNS looks up both the A record (IPv4) and AAAA record (IPv6)
↓
Gets back: 142.250.x.x (A) + 2607:f8b0:4004::200e (AAAA)
↓
The OS runs the Happy Eyeballs (RFC 8305) algorithm:
it tries both addresses concurrently, and uses whichever completes a TCP handshake first (usually IPv6 wins by a hair).This is why the address shown when you check your IP may be IPv6 — even when IPv4 also works, IPv6 usually connects a moment faster.
5. How to check if you have IPv6
5.1 The easiest way: your browser
Just open the cleanip.io homepage — we display your IPv4 and IPv6 dual-stack egress side by side; if you have one it shows, otherwise it shows "—".
Or visit an IPv6-only test site: https://ipv6.google.com — if it loads, you have IPv6.
5.2 From the command line
$ curl -6 -s ifconfig.co # force v6
2408:8456:1234::1 ← your public v6 address
$ curl -4 -s ifconfig.co # force v4
1.2.3.4
$ ping -6 ipv6.google.com
PING ipv6.google.com(... 2607:f8b0:4004::200e) 56 data bytes
64 bytes from ...: icmp_seq=1 ttl=117 time=12.3 ms5.3 Identifying the type of IPv6 address — public vs. link-local
If the IPv6 address you see starts with:
2xxx:or3xxx:— public IPv6 (Global Unicast)fe80:— link-local — not routable on the public internet, only valid on the local subnetfd00:/fc00:— ULA (private) — similar to an IPv4 private range::1— loopback
6. How to enable or disable IPv6
6.1 How to enable it — usually already on by default
Chinese home broadband providers have enabled it by default for everyone since 2023. If your home doesn't have IPv6:
- Log into your router's admin panel, find "IPv6 Settings" → enable it, and set the WAN mode to "Native" or "DHCPv6-PD"
- Call your ISP's support line: "I don't have IPv6 at home, please enable it"
- If your router's firmware is too old to support it, update the firmware or replace the router
6.2 How to disable it — sometimes you need to
Common reasons to disable IPv6:
- Your VPN only tunnels IPv4, so IPv6 traffic bypasses the VPN and exposes your real IP — VPN users must disable IPv6 (unless the VPN also proxies v6)
- Some legacy apps or gateways are incompatible with IPv6 and cause connection issues
- You're debugging a network issue and want to rule out IPv6 first
| Platform | How to disable it |
|---|---|
| Windows | Control Panel → Network → current adapter properties → uncheck "Internet Protocol Version 6 (TCP/IPv6)" or via PowerShell: Disable-NetAdapterBinding -InterfaceAlias "Ethernet" -ComponentID ms_tcpip6 |
| macOS | System Settings → Network → Details → TCP/IP → set "Configure IPv6" to "Link-local only" or "Off" |
| Linux | sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1To persist it, write to /etc/sysctl.d/99-disable-ipv6.conf |
| iOS / Android | Disabling IPv6 system-wide isn't feasible (needs jailbreak / root); use your VPN client's "Force IPv4 only" option instead |
| Router | Admin panel → IPv6 Settings → Disable — turns it off for the whole household |
7. Common IPv6 pitfalls
7.1 VPN doesn't tunnel IPv6 → your real IP leaks
Many VPN clients only proxy IPv4 by default. Your IPv4 address shows the VPN exit, but when visiting a dual-stack site, your browser prefers IPv6 and routes it directly through your home network — exposing your real public IPv6 address.Fix: test yourself with the /leak leak checker, then either disable system IPv6 or switch to a VPN that proxies both v4 and v6.
7.2 IPv6 is publicly routable → devices are directly exposed
IPv6 has no NAT, so every device on your home network gets a globally unique public IPv6 address. That means any IPv6 user on the internet can connect directly to your devices — smart appliances, NAS boxes, and cameras can be compromised if misconfigured.
Fix: make sure your router's IPv6 firewall is enabled (usually on by default), blocking inbound connections from outside while allowing outbound traffic.
7.3 ISP-assigned IPv6 is unstable — DHCPv6-PD prefixes change on every reboot
Chinese home broadband typically assigns a /56 or /60 prefix to your router via DHCPv6-PD, but the prefix can change on every reboot or lease renewal, breaking any port forwarding you've set up.
Fix: request a static prefix (most providers won't offer one), or use DDNS (dynamic DNS) to update automatically.
7.4 Some overseas nodes don't support IPv6 → dual stack can actually be slower
The Happy Eyeballs algorithm tries v4 and v6 concurrently, but if the IPv6 path is poor (high latency or packet loss), waiting for it to time out before falling back to v4 can be slower than using v4 alone.
8. IPv6 quick reference
| Need | Command / action |
|---|---|
| Check my public IPv6 | curl -6 ifconfig.co |
| List all local IPv6 addresses | ip -6 addr show / ifconfig | grep inet6 |
| Test whether IPv6 can reach the internet | Visit ipv6.google.com |
| Temporarily disable IPv6 (Linux) | sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 |
| Temporarily disable IPv6 (Windows) | Uncheck IPv6 in Control Panel, or use the PowerShell command |
| Check the default IPv6 route | ip -6 route | grep default |
| Flush the IPv6 neighbor cache | ip -6 neigh flush all |
| Trace the IPv6 path to a destination | traceroute6 example.com / mtr -6 example.com |