🔒 All tools run entirely in your browser. No data leaves your device.

IPv6 Subnet Calculator

Calculate IPv6 networks, subnet divisions, and address counts. Compact and expanded notation, reverse DNS zones, and network type classification (Global, Link-Local, ULA, Multicast).

Common prefixes:
Network (compact)
2001:db8::
Network (expanded)
2001:0db8:0000:0000:0000:0000:0000:0000
Last address (compact)
2001:db8::ffff:ffff:ffff:ffff
Last address (expanded)
2001:0db8:0000:0000:ffff:ffff:ffff:ffff
Prefix length
/64
Total addresses
1.84 × 10^19 (20-digit)
Network type
Documentation
RFC / range
2001:db8::/32, RFC 3849
Reverse DNS zone
0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa
Netmask
ffff:ffff:ffff:ffff:0000:0000:0000:0000

About this tool

IPv6 addresses are 128 bits — four times the length of IPv4 — so the math and notation are fundamentally different. This calculator parses any valid IPv6 representation (compact 2001:db8::1, expanded 2001:0db8:0000:...:0001, or mixed with a trailing IPv4 like ::ffff:192.0.2.1) and gives you the network and last address, total address count, network type classification, netmask, reverse DNS zone, and subnet division options.

The tool uses JavaScript BigInt for all arithmetic — regular numbers cannot represent 128-bit values without loss. Address counts for large blocks are displayed in scientific notation because a /64 already holds 1.8 × 10^19 addresses, which is too large to enumerate meaningfully.

Typical prefix conventions: /128 is a single host route. /127 is a point-to-point link (RFC 6164 recommends this for router-to-router). /64 is the standard end-user subnet — required by SLAAC and by several RFCs. /56 is a common allocation to residential customers (256 /64s). /48 is the standard allocation to enterprises and small ISPs (65,536 /64s). /32 is the typical allocation to Regional Internet Registry members. Allocations larger than /48 exist but are rare outside the backbone.

Network type classification follows RFC 4291 (and related RFCs): Global Unicast (2000::/3) is the publicly routable space everyone uses in practice. Link-Local (fe80::/10) is auto-configured on every IPv6 interface and used for on-link protocols like neighbor discovery and router advertisement — it does not route off-link. Unique Local Addresses (fc00::/7, RFC 4193) are the IPv6 equivalent of IPv4 private space (RFC 1918), intended for internal networks that should not route on the public Internet. Multicast (ff00::/8) replaces IPv4 broadcast; IPv6 has no broadcast addresses. Documentation (2001:db8::/32, RFC 3849) is reserved for examples — the default the tool loads is from this space.

Reverse DNS zones for IPv6 use nibble-reversed notation under ip6.arpa. A /64 generates a zone of 16 reversed nibbles. This is how you tell bind, Knot, or your DNS provider where to point the PTR records for a given prefix.

Frequently asked questions

Why is /64 the standard end-user subnet?

RFC 4291 specifies a 64-bit interface identifier for IPv6 unicast. SLAAC (Stateless Address Autoconfiguration) generates this identifier automatically from the interface MAC or a random value. If you use a prefix longer than /64, SLAAC breaks. Some protocols (like 6to4 and some transition mechanisms) also assume /64 boundaries. The result: /64 is the de facto end-user subnet, /56 or /48 is typical for a customer allocation.

What does "::" mean in an IPv6 address?

The "::" is zero compression — it stands in for one or more consecutive all-zero 16-bit groups. "2001:db8::1" expands to "2001:0db8:0000:0000:0000:0000:0000:0001". The compression can appear at most once per address (otherwise it would be ambiguous). "::" alone is the unspecified address (::/128), and "::1" is the loopback.

Why are IPv6 address counts shown as scientific notation?

A /64 contains 2^64 = 18,446,744,073,709,551,616 addresses — written as "1.8 × 10^19" for readability. A /48 has 2^80 (≈1.2 × 10^24), a /32 has 2^96. Enumerating these is meaningless; the scientific form captures the scale. Contrast with IPv4, where subnet sizes rarely exceed 2^24.

How does IPv6 subnetting differ from IPv4?

Three key differences: (1) No broadcast address — IPv6 uses multicast for one-to-many delivery. Every address in a subnet is usable as a host. (2) Prefix arithmetic uses 128 bits instead of 32, requiring BigInt in most languages. (3) /31 and /127 are point-to-point equivalents with no "wasted" addresses; /64 is the normal host subnet; larger blocks (/48, /56) are allocated hierarchically.

What are the main IPv6 address types?

Global Unicast (2000::/3, publicly routable), Link-Local (fe80::/10, on-link only), Unique Local / ULA (fc00::/7, similar to IPv4 private), Multicast (ff00::/8, one-to-many), Loopback (::1/128), Documentation (2001:db8::/32, examples only). Link-local addresses are auto-configured on every IPv6 interface and used for neighbor discovery.

What is SLAAC and EUI-64?

Stateless Address Autoconfiguration: an IPv6 host derives its own address from the router advertisement prefix plus an interface identifier. Classic SLAAC uses EUI-64 — deriving the identifier from the MAC address (insert FF:FE in the middle, flip the universal/local bit). Modern stacks use RFC 4941 temporary addresses or RFC 7217 stable privacy addresses instead, because MAC-derived addresses expose device identity across networks.