Skip to main content

IPv6 Subnet Calculator

Calculate IPv6 subnet details — network address, last address, total count, and address type for any prefix length.

CIDR notation. Accepts compressed (2001:db8::/32) or expanded forms.

Network Address
2001:db8::
Network (expanded)
2001:0db8:0000:0000:0000:0000:0000:0000
Last Address
2001:db8:ffff:ffff:ffff:ffff:ffff:ffff
Last (expanded)
2001:0db8:ffff:ffff:ffff:ffff:ffff:ffff
CIDR Notation
/32
Total Addresses
7.922×10^28
Address Type
Documentation (2001:db8::/32)
Your data never leaves your browser

Understanding IPv6 Addressing

IPv6 was developed by the IETF to replace IPv4's 32-bit address space, which proved insufficient for the growing internet. With 128 bits per address, IPv6 can represent approximately 3.4×10^38 unique addresses — enough to assign many orders of magnitude more addresses than there are stars in the observable universe. The protocol is specified in RFC 8200 (2017), which superseded RFC 2460.

IPv6 addresses are written as eight groups of four hexadecimal digits separated by colons. RFC 5952 defines a canonical text representation that eliminates ambiguity: lowercase letters, no unnecessary leading zeros, and a single `::` replacing the longest run of consecutive zero groups (but only when that run covers at least two groups). The common /64 prefix length comes from Stateless Address Autoconfiguration, which uses the lower 64 bits of an address as an interface identifier derived from MAC addresses or a random token.

This calculator handles the full 128-bit address space using JavaScript BigInt, so address counts for large blocks like /32 or /48 are computed exactly. It identifies the address type — global unicast (2000::/3), link-local (fe80::/10), unique local (fc00::/7), multicast (ff00::/8), documentation (2001:db8::/32), loopback (::1), and unspecified (::) — per the reserved ranges defined by the IETF.

Frequently Asked Questions

What is the difference between IPv4 and IPv6?

IPv4 uses 32-bit addresses (about 4.3 billion total), while IPv6 uses 128-bit addresses, yielding roughly 3.4×10^38 unique values. IPv6 was standardized in RFC 2460 and superseded by RFC 8200 in 2017. It eliminates the need for NAT in most cases and includes built-in features like autoconfiguration and mandatory support for IPsec signaling.

Why does my IPv6 address have double colons (::)?

The `::` notation compresses one or more consecutive groups of all zeros in an IPv6 address. RFC 5952 specifies that `::` must replace the longest run of consecutive zero groups, and only one `::` is allowed per address. A single zero group must not be compressed — so `1:2:3:4:5:6:0:8` stays as written, but `1:2:3:4:5:6:0:0` becomes `1:2:3:4:5:6::`.

What prefix lengths are commonly used in IPv6?

RIRs typically allocate /32 blocks to ISPs. End-user sites commonly receive a /48, from which they can derive 65,536 /64 subnets. A /64 is the standard subnet size for a single LAN, since Stateless Address Autoconfiguration (SLAAC) depends on a 64-bit interface identifier. /128 represents a single host.

What is a link-local address?

Link-local addresses in the fe80::/10 range are automatically assigned to every IPv6-enabled interface and are valid only on a single physical network segment (link). They are used for neighbor discovery, router solicitation, and auto-configuration. Packets with link-local source or destination addresses are never forwarded by routers.

What is a unique local address?

Unique local addresses (ULAs) in fc00::/7 — in practice fd00::/8 — are the IPv6 equivalent of RFC 1918 private IPv4 ranges. They are routable within an organization but not globally, and the locally-assigned half includes a pseudo-random 40-bit global ID to avoid collisions if networks are later merged.

How do I calculate the number of addresses in an IPv6 subnet?

The formula is 2^(128 - prefix). For a /64 that's 2^64 ≈ 1.8×10^19 addresses. For a /48 it's 2^80 ≈ 1.2×10^24. Because these counts exceed JavaScript's safe integer limit, this calculator uses BigInt throughout and renders very large totals in scientific notation.