Using the calculator
Type an address with its prefix, like 2001:db8:abcd:1234::/52. Any written form works: the short form with ::, all eight groups in full, capitals, square brackets, or a zone such as %eth0 on the end, which is ignored. With no prefix the calculator takes /64, the usual size for a single subnet.
It gives the network, the first and last address in the block and how many addresses it holds. For a /64 or shorter prefix it also counts the /64 subnets inside. The type line says whether the address sits in a special block from the IANA registry, such as link-local, unique local or documentation.
To carve the block up, pick a size under Split into. The calculator lists the first 16 subnets and the last one, and says how many there are in all.
How IPv6 prefixes work
An IPv6 address is 128 bits, written as eight groups of four hex digits. Each hex digit stands for 4 bits, so each group is 16. The prefix length says how many bits from the left name the network. The rest, the interface bits, pick one address inside it.
To find the network, keep the prefix bits and set the rest to zero. When the prefix is a multiple of 16, that means keeping whole groups. When it is a multiple of 4, it means keeping whole hex digits: a /52 keeps the first 13. Anything else cuts through a digit, and that digit has to be worked out in binary.
The last address is the network with every interface bit set to 1. Unlike IPv4, nothing is set aside for broadcast. RFC 4291 says there are no broadcast addresses in IPv6, and multicast does that job instead.
A worked example: 2001:db8:abcd:1234::/52
52 bits is three whole groups and 4 bits into the fourth. The first three groups, 2001:0db8:abcd, stay as they are.
The fourth group is 1234, which is 0001 0010 0011 0100 in binary. Keep the first 4 bits and clear the other 12: 0001 0000 0000 0000, which is 1000. Every group after it becomes 0000, so the network is 2001:db8:abcd:1000::/52.
Setting the 76 interface bits to 1 gives the last address, 2001:db8:abcd:1fff:ffff:ffff:ffff:ffff. The block holds 2^76 addresses, or 4,096 subnets of /64.
Splitting a prefix into subnets
Each bit added to the prefix halves the block and doubles the number of blocks. A /48 split into /56 subnets uses 8 more bits, so there are 2^8 = 256 of them. They start at 2001:db8::/56, 2001:db8:0:100::/56, 2001:db8:0:200::/56 and so on, up to 2001:db8:0:ff00::/56.
Splitting on a 4-bit boundary keeps the subnets easy to read, because each one changes whole hex digits. That is why /48, /52, /56, /60 and /64 are the sizes offered here.
RFC 6177 says an end site should get at least one /64, and in most cases a lot more. It suggests something like a /56 for a home. A single /64 is not enough for a home, since devices on every subnet expect a /64 each.
Special blocks
Most of the address space is not handed out at all. IANA's address space registry marks 2000::/3 as global unicast, the addresses used on the internet. fc00::/7 is unique local, for private networks, and fe80::/10 is link-local, the address every interface gives itself. ff00::/8 is multicast.
2001:db8::/32 is set aside for documentation by RFC 3849, which is why the examples here use it. RFC 9637 added a second documentation block, 3fff::/20, in 2024. The calculator checks every address against the IANA special-purpose registry and names the smallest block it falls in.
Questions
How many addresses are in a /64?
2^64, which is 18,446,744,073,709,551,616. A /64 is the usual size for one subnet, the one network a set of devices sits on.
Why doesn't IPv6 have a broadcast address?
RFC 4291 leaves broadcast out of IPv6 and gives the job to multicast. So the network address and the all-ones address aren't reserved the way they are in IPv4.
What prefix should a home get?
RFC 6177 suggests a default such as a /56, and says a home shouldn't be limited to a single /64. Larger sites may need a /48 or more.
Can I use a prefix longer than /64?
Yes, the calculator works out any prefix from /0 to /128. RFC 4291 expects 64-bit interface IDs on most unicast subnets, though, so prefixes longer than /64 are kept for special cases such as point-to-point links.
What does :: mean in an address?
It stands in for one run of zero groups, so 2001:db8::1 is 2001:0db8:0000:0000:0000:0000:0000:0001. The IPv6 compression page explains the rules and converts either way.
Sources
- RFC 4291: IP Version 6 Addressing Architecture
- RFC 5952: A Recommendation for IPv6 Address Text Representation
- RFC 6177: IPv6 Address Assignment to End Sites
- IANA IPv6 Special-Purpose Address Registry
- IANA Internet Protocol Version 6 Address Space
Added and reviewed . What's new






