Skip to content
ipaddress.si

IPv6, explained

128 bits, written in hexadecimal, with room for every device that will ever connect. Here's how to read them.

Look up an IPv6 address

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:

  1. Drop leading zeros in each group: 0db8 → db8, 0042 → 42, 0000 → 0.
  2. 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

2001
routing
0db8
routing
0000
routing
0000
subnet
0000
interface
ff00
interface
0042
interface
8329
interface

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 practice fd00::/8) — the IPv6 equivalent of private addresses (RFC 4193).
  • Multicast ff00::/8 — IPv6 has no broadcast; multicast groups replace it.
  • Loopback ::1 and unspecified ::.
  • IPv4-mapped ::ffff:0:0/96 — how IPv6 software represents IPv4 peers, e.g. ::ffff:192.0.2.1.
  • Documentation 2001:db8::/32 and 3fff::/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:

BlockPurposeReferenceGlobally reachable
::/128Unspecified AddressRFC 4291No
::1/128Loopback AddressRFC 4291No
::ffff:0:0/96IPv4-mapped AddressRFC 4291No
64:ff9b::/96IPv4-IPv6 Translation (NAT64)RFC 6052Yes
64:ff9b:1::/48Local-use IPv4/IPv6 TranslationRFC 8215No
100::/64Discard-Only Address BlockRFC 6666No
2001::/32TEREDORFC 4380No
2001:2::/48BenchmarkingRFC 5180No
2001:db8::/32DocumentationRFC 3849No
2001:10::/28Deprecated (ORCHID)RFC 4843No
2001:20::/28ORCHIDv2RFC 7343Yes
2002::/166to4RFC 3056No
3fff::/20DocumentationRFC 9637No
5f00::/16Segment Routing (SRv6) SIDsRFC 9602No
fc00::/7Unique-LocalRFC 4193No
fe80::/10Link-Local UnicastRFC 4291No
ff00::/8MulticastRFC 4291No

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.