IPv6 Subnet Calculator

Calculate network prefix, address range, interface ID and compressed/expanded notation from any IPv6 CIDR. Everything is computed in your browser.

100% client-side

Subnet input

Network bits Host bits

Results

Compressed address
Expanded address
Address type
Network prefix
Address range
Interface ID (last 64 bits)
Total addresses
/64 subnets in this block
CIDR notation

How IPv6 subnetting works

An IPv6 address is a 128-bit number, written as 8 groups of 4 hex digits. A prefix length (/64) works exactly like IPv4 CIDR, just out of 128 bits instead of 32: it fixes how many leading bits are the network portion, leaving the rest as host bits. Unlike IPv4, IPv6 has no broadcast address — every address in the block, including the all-zeros one, is a valid host:

2001:db8:1234::1/64
→ Network prefix:  2001:db8:1234::/64
→ Address range:   2001:db8:1234:: – 2001:db8:1234:0:ffff:ffff:ffff:ffff
→ Interface ID:    0000:0000:0000:0001
→ Total addresses: 18,446,744,073,709,551,616  (2^64)

RFC 5952 defines the canonical text form used above: hex digits are lowercase, leading zeros are dropped from each group, and :: replaces the single longest run of consecutive all-zero groups — used at most once per address, and never for a lone zero group (so 2001:db8:0:1::1 keeps its single 0 written out). This tool builds the address as a real 128-bit integer (JavaScript's native numbers only give you 53 safe bits, nowhere near enough) and runs every calculation — network, range, and the interface split — with exact big-integer arithmetic, the same category of bug that has bitten IPv4-only tools ported carelessly to IPv6.

Frequently asked questions

What does an IPv6 prefix length mean?

An IPv6 prefix length (e.g. /64) is exactly like IPv4 CIDR notation but out of 128 bits instead of 32: it says how many leading bits of the address are the fixed network portion. /64 is the conventional boundary for a single LAN segment — the remaining 64 bits are the interface ID.

Why doesn't IPv6 have a broadcast address?

IPv6 removed broadcast entirely (RFC 4291) in favor of multicast. Every address in a subnet, including the all-zeros network address, is a valid unicast host address — there's no address to subtract for broadcast like IPv4's .255, so a /64 has 2^64 usable addresses, not 2^64 minus 2.

What's the difference between compressed and expanded notation?

Expanded notation writes all 8 groups of 4 hex digits with no shortcuts. Compressed notation (RFC 5952) is the canonical form: leading zeros are dropped from each group, and "::" replaces the single longest run of consecutive all-zero groups — used once per address, and never for just one zero group.

What's the difference between link-local, unique local, and global unicast addresses?

Link-local (fe80::/10) never leaves the local network segment and is auto-assigned on every interface. Unique local (fc00::/7, RFC 4193) is IPv6's equivalent of private IPv4 ranges — routable within an organization but not on the public internet. Global unicast (2000::/3) is publicly routable, assigned by IANA down to individual networks.