IPv6 Subnet Calculator

Enter an IPv6 address with a prefix length (like 2001:db8::/32) and this calculator instantly returns the network address, the last address in the block, the total address count, the canonical compressed form, and the address type — global unicast, unique local, link-local, multicast, or documentation — computed entirely in your browser, with no data ever sent to a server.

IPv6 Subnet Calculator

An IPv6 prefix works like an IPv4 CIDR block, but there is no dotted-decimal netmask notation at all — IPv6 only ever writes the prefix length after a slash, and the address itself is 128 bits (eight 16-bit groups) instead of IPv4's 32 bits (four 8-bit octets). That extra width is also why address counts stop fitting in a normal number past a /64: a /32 block alone holds 2^96 addresses, so this calculator uses BigInt arithmetic throughout to keep every digit exact.

Compression shortens the written form: the longest run of two or more consecutive all-zero groups collapses to a bare “::”, used at most once per address. 2001:0db8:0000:0000:0000:0000:0000:0001 and 2001:db8::1 are the exact same address — the calculator's expanded/compressed pair shows both forms for whatever you type. An IPv4-mapped address like ::ffff:192.0.2.1 keeps its trailing IPv4 dotted-decimal notation even in canonical form, since that mixed form is what RFC 5952 recommends and what most tooling actually displays.

Unlike IPv4, IPv6 never reserves a network or broadcast address inside a subnet — every address in the range, including the first, is potentially assignable, and multicast (ff00::/8) replaces broadcast entirely. The /64 prefix is the de facto standard for any LAN segment because Stateless Address Autoconfiguration (SLAAC) and EUI-64 interface identifiers — the last 64 bits derived from a device's MAC address, shown above — both assume exactly 64 bits of host space.

How to use this calculator

  1. Enter the address

    Type an IPv6 address with a prefix length (like 2001:db8::/32) in any valid form — compressed, expanded, or with an embedded IPv4 tail.

  2. Calculate

    Click Calculate (or just open a permalink URL) to compute the network, last address, address count, and address type instantly, with no page reload.

  3. Read the result

    The result card shows the compressed and expanded forms, the network and last address, the total address count, and the address type badge.

  4. Add a MAC for EUI-64 (optional)

    Enter a MAC address to derive its EUI-64 interface identifier and see it combined with the network address above into a full IPv6 address.

  5. Split or share

    Use the split tool to divide the block into smaller subnets of a chosen prefix length, or share the current page URL — it already encodes your input as a permalink.

Split into smaller subnets

Divide the block above into equal-size subnets of a target prefix length (for example, split a /48 into /56 blocks). The result is capped at a fixed number of rows plus a total count, so an astronomically large split never freezes the tab.

Glossary

IPv6 prefix
The address/prefix-length notation (e.g. 2001:db8::/32) marking how many of the address's 128 leading bits are fixed as the network portion — IPv6's equivalent of an IPv4 CIDR block, with no separate dotted-decimal mask form.
Global Unicast Address (GUA)
A publicly routable IPv6 address, allocated out of the 2000::/3 range — the IPv6 equivalent of a public IPv4 address.
Unique Local Address (ULA)
A private, non-globally-routable IPv6 address from fc00::/7 (RFC 4193) — the IPv6 analogue of IPv4's private ranges like 10.0.0.0/8, generated with a pseudo-random global ID so two independently chosen ULA prefixes almost never collide.
Link-local address
An address from fe80::/10, automatically assigned to every IPv6 interface and valid only on its own local network segment — never forwarded by a router.
Multicast address
An address from ff00::/8 identifying a group of interfaces rather than one host — IPv6 has no broadcast address at all, so multicast (e.g. ff02::1, “all nodes”) covers every use case broadcast used to.
EUI-64
A 64-bit interface identifier derived from a 48-bit MAC address by splitting it into two 24-bit halves, inserting fffe in the middle, and flipping the universal/local bit — used by SLAAC to build a full IPv6 address without DHCP.

API equivalent

The subnet math above is computed entirely on your device — this page makes zero network requests to calculate any result on it. If you'd rather get network/RDAP facts about a real, routable IPv6 address server-side as part of a larger lookup, the network group of our main API returns the same kind of facts:

curl
curl "https://ip.xakki.pro/api/v1/ip?ip=2606:4700:4700::1111&include=network"

Example response (trimmed):

{
  "schemaVersion": 15,
  "status": "ok",
  "ip": "2606:4700:4700::1111",
  "version": 6,
  "network": {
    "asn": 13335,
    "prefix": "2606:4700::/32",
    "registry": "arin"
  }
}

Read the full API docs

Frequently asked questions

What's the difference between an IPv6 prefix and an IPv4 subnet mask?
They serve the same purpose — marking how many leading bits are the network portion — but IPv6 only ever writes it as a /N prefix length; there is no dotted-decimal netmask notation like IPv4's 255.255.255.0, and no netmask-to-prefix conversion needed.
What is a Unique Local Address (ULA)?
A ULA (fc00::/7, RFC 4193) is a private IPv6 address, not routable on the public internet — the IPv6 equivalent of IPv4's private ranges (10.0.0.0/8, 192.168.0.0/16). Its global ID is generated pseudo-randomly, not sequentially, so two independently created ULA networks are extremely unlikely to overlap if they're later merged.
Why is /64 the standard prefix for a LAN segment?
Stateless Address Autoconfiguration (SLAAC) and EUI-64 interface identifiers both need exactly 64 bits of host space to build an address from a device's MAC address without a DHCP server — a longer prefix (e.g. /80) would leave no room for that mechanism to work.
What is EUI-64 and why would I need it?
EUI-64 is the algorithm that turns a 48-bit MAC address into a 64-bit interface identifier (splitting it in half, inserting fffe, and flipping one bit) — it's how SLAAC-configured IPv6 hosts pick their own address without asking a DHCP server. Enter a MAC address above to see its EUI-64 interface ID and the full address it produces with the network prefix above it.
Does this tool send my IPv6 address or MAC anywhere?
No. Every calculation on this page — the main result, EUI-64 derivation and subnet splitting — runs entirely in your browser using plain arithmetic; nothing you type here is sent to our servers or anywhere else.
Why does 2001:db8::/32 always classify as “documentation”, even though it sits inside the global unicast range?
2001:db8::/32 (RFC 3849) is reserved specifically for documentation and examples, and it happens to be carved out of the wider 2000::/3 global unicast range. This calculator checks the narrower, more specific range first, so any address inside 2001:db8::/32 is always reported as documentation rather than the broader global-unicast type it would otherwise also match.

Like this tool? Our API gives free accounts 1,000 requests/day.See the API docs →