Why IPv6 exists
IPv6 (RFC 8200) was designed in the 1990s when it became clear that IPv4’s 4.3 billion addresses would run out. An IPv6 address has 128 bits: 2¹²⁸, or about 3.4 × 10³⁸ addresses. The point isn’t the size of the number; it’s that every network can get as much space as it needs, and every device can have a globally reachable address again — no NAT required.
IPv6 is not an upgrade of IPv4; the two protocols run side by side (dual stack). Today a large and growing share of traffic to major services uses IPv6, especially on mobile networks.
Notation: hexadecimal groups
An IPv6 address is written as eight groups of four hexadecimal digits, separated by colons:
2001:0db8:0000:0000:0000:ff00:0042:8329
Each group is 16 bits. Hexadecimal digits run from 0–9 and a–f; letters are case-insensitive but written in lowercase by convention.
Compression rules
Long runs of zeros are common, so two shortening rules exist (RFC 4291), and RFC 5952 defines the one correct way to apply them:
- Drop leading zeros in each group:
0db8→db8,0042→42,0000→0. - Replace one run of consecutive zero groups with
::— the longest run, the first one if there’s a tie, and only if it covers at least two groups. It can appear only once, otherwise the address would be ambiguous.
So 2001:0db8:0000:0000:0000:ff00:0042:8329 becomes 2001:db8::ff00:42:8329. The loopback address 0:0:0:0:0:0:0:1 is ::1, and the unspecified address is just ::.
Try any address in the explorer below — it shows the expanded and canonical forms side by side.
Expanded
Compressed
2001:db8::ff00:42:8329
Scope: Special-purpose · Documentation (2001:db8::/32)
Prefixes and the /64
IPv6 uses CIDR notation like IPv4. A typical global unicast address splits into:
- Routing prefix (usually /48 or /56) — assigned to a site by its provider.
- Subnet ID — the bits up to /64, numbering the site’s networks. A /48 holds 65,536 subnets.
- Interface identifier (the last 64 bits) — identifies the device on its network.
A single LAN is almost always a /64. Stateless address autoconfiguration (SLAAC) relies on it: devices pick their own interface identifiers, nowadays randomised for privacy (RFC 8981), and change them regularly.
Address types you'll meet
- Global unicast
2000::/3— public, routable addresses. - Link-local
fe80::/10— every IPv6 interface has one; valid only on the local link, used for neighbour discovery and routing protocols. - Unique local
fc00::/7(in practicefd00::/8) — the IPv6 equivalent of private addresses (RFC 4193). - Multicast
ff00::/8— IPv6 has no broadcast; multicast groups replace it. - Loopback
::1and unspecified::. - IPv4-mapped
::ffff:0:0/96— how IPv6 software represents IPv4 peers, e.g.::ffff:192.0.2.1. - Documentation
2001:db8::/32and3fff::/20— for examples like the ones on this page.
Special-use IPv6 blocks
The full list of reserved IPv6 blocks, generated from the IANA registry used by this site’s classifier:
| Block | Purpose | Reference | Globally reachable |
|---|---|---|---|
| ::/128 | Unspecified Address | RFC 4291 | No |
| ::1/128 | Loopback Address | RFC 4291 | No |
| ::ffff:0:0/96 | IPv4-mapped Address | RFC 4291 | No |
| 64:ff9b::/96 | IPv4-IPv6 Translation (NAT64) | RFC 6052 | Yes |
| 64:ff9b:1::/48 | Local-use IPv4/IPv6 Translation | RFC 8215 | No |
| 100::/64 | Discard-Only Address Block | RFC 6666 | No |
| 2001::/32 | TEREDO | RFC 4380 | No |
| 2001:2::/48 | Benchmarking | RFC 5180 | No |
| 2001:db8::/32 | Documentation | RFC 3849 | No |
| 2001:10::/28 | Deprecated (ORCHID) | RFC 4843 | No |
| 2001:20::/28 | ORCHIDv2 | RFC 7343 | Yes |
| 2002::/16 | 6to4 | RFC 3056 | No |
| 3fff::/20 | Documentation | RFC 9637 | No |
| 5f00::/16 | Segment Routing (SRv6) SIDs | RFC 9602 | No |
| fc00::/7 | Unique-Local | RFC 4193 | No |
| fe80::/10 | Link-Local Unicast | RFC 4291 | No |
| ff00::/8 | Multicast | RFC 4291 | No |
Dual stack and how this site detects both addresses
A browser connects over one address family at a time. When both work, it usually prefers IPv6 (Happy Eyeballs, RFC 8305). To show you both addresses, ipaddress.si asks two extra hostnames from your browser: one that only has an IPv4 (A) record and one that only has an IPv6 (AAAA) record. Whatever each one sees is your address for that family. If the IPv6 request fails, your connection has no working IPv6.
Frequently asked questions
- How do I know if I have IPv6?
- Open the homepage of this site. If an IPv6 address is shown — either as your main address or in the IPv6 row — your connection supports IPv6.
- Is IPv6 faster than IPv4?
- Not inherently, but it can be: IPv6 traffic often avoids carrier-grade NAT, which removes a hop and a stateful bottleneck.
- Do I still need a firewall with IPv6?
- Yes. Without NAT, devices have globally routable addresses; a stateful firewall that blocks unsolicited inbound traffic provides the protection NAT did implicitly.
- Why does my IPv6 address keep changing?
- Privacy extensions (RFC 8981) generate temporary interface identifiers that rotate, so your address can't be used to track your device across networks. The /64 prefix usually stays the same.