IPv6 subnet calculator
Free IPv6 subnet calculator. Enter an IPv6 prefix such as 2001:db8::/48 and press Calculate. You’ll see the first and last address, how many addresses it holds, and the list of smaller subnets it splits into (by default the /64 networks you would give to each LAN or Wi-Fi).
Try: a /48 into /56s · a /56 into /64s · one /64 · a /126 into /127 links
2001:db8:0:e::/64
✓ 2001:db8:0:e::/64 holds 1 × /64 subnet (one per network, e.g. LAN, Wi-Fi, guests, cameras).
- Network
- 2001:db8:0:e::
- First address
- 2001:db8:0:e::
- Last address
- 2001:db8:0:e:ffff:ffff:ffff:ffff
- Total addresses
- 18,446,744,073,709,551,616
- /64 networks
- 1
- Type
- documentation
All 1 /64 subnets
| Subnet | First address | Last address |
|---|---|---|
| 2001:db8:0:e::/64 | 2001:db8:0:e:: | 2001:db8:0:e:ffff:ffff:ffff:ffff |
JSON
{
"ok": true,
"version": 6,
"parent": "2001:db8:0:e::/64",
"new_prefix": 64,
"subnet_count": "1",
"addresses_each": "18446744073709551616",
"subnets": [
{
"cidr": "2001:db8:0:e::/64",
"first": "2001:db8:0:e::",
"last": "2001:db8:0:e:ffff:ffff:ffff:ffff"
}
],
"truncated": false
}How many networks do you need?
Every IPv6 network (LAN, Wi-Fi, guests, cameras, each office) gets one /64. Type how many you need to see if your block is big enough.
Expand or shorten an IPv6 address
Paste any IPv6 address to see it written out in full (all 32 digits) and in its shortest correct form, plus the network it belongs to.
Try: 2001:db8::1 · 2001:0db8:0000:0000:0000:ff00:0042:8329 · fe80::1%eth0
Is this IPv6 address in my prefix?
Paste an address and your block (from the router or ISP) to see if the address belongs to it, and which /64 network it is on.
Try: 2001:db8:abcd:12::5 in a /48 · 2001:db8:abce::1 (outside) · in a /56
Not sure if you even have IPv6? Run the one-click IPv6 test.
IPv6 prefix sizes in plain words
The number after the slash says how much of the address is fixed. A smaller number means a bigger block. These are the sizes you’ll actually meet (every size from /16 to /128 is in the IPv6 subnet cheat sheet):
| Prefix | Who gets it | Holds |
|---|---|---|
| /32 | Given to an ISP by the registry (AFRINIC, RIPE…) | 4.3 billion /64s |
| /48 | A whole site or business | 65,536 LANs |
| /56 | A typical home or small office from the ISP | 256 LANs |
| /60 | A small home delegation (some ISPs) | 16 LANs |
| /64 | One network (LAN or Wi-Fi). Always use this for devices | 1 LAN, 18.4 quintillion addresses |
| /127 | A link between two routers | 2 addresses |
| /128 | One single address (one device or server) | 1 address |
IPv6 prefix for the number of subnets you need
| Networks (/64s) needed | Ask for | Holds |
|---|---|---|
| 1 | /64 | 1 × /64 |
| 2 to 16 | /60 | 16 × /64 |
| 17 to 256 | /56 | 256 × /64 |
| 257 to 4,096 | /52 | 4,096 × /64 |
| 4,097 to 65,536 | /48 | 65,536 × /64 |
How to plan an IPv6 network in 3 steps
- Find your block. Your ISP gives your router a prefix (often a /56 or /48). It’s on the router’s IPv6 or WAN status page as “delegated prefix” or “prefix delegation”.
- Give every network a /64. Main LAN, Wi-Fi, guest Wi-Fi, cameras, servers: one /64 each. Put the block above in the calculator with “split into /64” to get the list.
- Use /127 only for router-to-router links and /128 for a single address such as a loopback. Don’t use anything between /65 and /126 for normal devices: phones and laptops can’t give themselves an address there.
Reading the address: why /48, /56 and /64 are easy
An IPv6 address is 128 bits written as 8 groups of 4 hex digits, e.g. 2001:0db8:abcd:0012:0000:0000:0000:0001, shortened to 2001:db8:abcd:12::1 (leading zeros dropped, one run of zero groups replaced by ::). Each hex digit is 4 bits, so a /48 fixes the first 3 groups, a /56 fixes 3½ groups and a /64 fixes the first 4 groups. The last 4 groups (64 bits) are for devices. In a /56 such as 2001:db8:abcd:1200::/56 your networks are 2001:db8:abcd:1200::/64, …:1201::/64 up to …:12ff::/64.
IPv6 vs IPv4 subnetting
With IPv4 you squeeze every address: a /24 home network has 254 usable hosts and you count carefully. With IPv6 you never run out inside a network, so you plan by number of networks, not number of devices. There is no broadcast address, no NAT needed and no “usable hosts minus two”. For IPv4 maths (subnet mask, broadcast, usable hosts) use the main subnet calculator or the subnet mask cheat sheet. New to the slash notation? Read what CIDR notation means.
Special IPv6 ranges the calculator recognises
2000::/3: global unicast, normal public internet addresses.fc00::/7(in practicefd00::/8): unique local, the IPv6 version of private addresses like 192.168.x.x (see public vs private IP).fe80::/10: link-local, every interface has one; never routed.2001:db8::/32: documentation only, used in examples like the ones on this page.ff00::/8: multicast.
Frequently asked questions
How do I check if an IPv6 address is in my prefix?
Put the address and the prefix (for example 2001:db8:abcd::/48) in the “Is this IPv6 address in my prefix?” box above and press Check. Behind the scenes it keeps only the first 48 (or 56, or 64) bits of the address and compares them with the prefix. If they match, the address is inside. It also tells you which /64 network the address is on.
Is my IPv6 address public or private?
Most IPv6 addresses starting with 2 or 3 are public (global) addresses that websites can see. Addresses starting with fd or fc are private (unique local), fe80 is link-local (only on your own network), and 2001:db8 is for examples only. Paste the address into the “Expand or shorten” box above and it tells you which one it is.
How do I expand a shortened IPv6 address?
Replace the :: with as many 0000 groups as it takes to make 8 groups in total, then pad every group to 4 hex digits with leading zeros. 2001:db8::1 becomes 2001:0db8:0000:0000:0000:0000:0000:0001. The “Expand or shorten” box above does it in one click.
What is the shortest correct way to write an IPv6 address?
Use lower case, drop the leading zeros in each group, and replace the longest run of two or more all-zero groups with :: (only once per address; if two runs are equally long, shorten the first). So 2001:0db8:0000:0000:0000:ff00:0042:8329 is written 2001:db8::ff00:42:8329.
What IPv6 prefix do I need for 20 subnets?
Each subnet is a /64, so you need 20 /64s. The smallest block that holds 20 is a /59 (32 networks), but blocks are normally handed out on whole hex digits, so a /56 (256 networks) is the usual answer. A /60 only holds 16.
How many IPv6 addresses are in a /64?
A /64 holds 18,446,744,073,709,551,616 addresses (2 to the power 64, about 18.4 quintillion). You never run out inside one network, which is why IPv6 is planned by number of networks, not number of devices.
How many /64 subnets are in a /48?
A /48 holds 65,536 /64 subnets (2 to the power 16). A /56 holds 256 and a /60 holds 16. Each /64 is one network, with about 18.4 quintillion addresses.
What IPv6 prefix does my ISP give me?
Most ISPs that support IPv6 delegate a /56 or a /48 to your router (some give a /60, and some mobile networks only a single /64). Your router then hands one /64 to each network. Look for “delegated prefix” or “IA_PD” on the router’s IPv6 status page.
Why should every IPv6 network be a /64?
Phones, laptops and smart devices pick their own address with SLAAC, which needs exactly 64 bits for the device part. Smaller subnets like /80 break that, so use /64 for every LAN and only use longer prefixes such as /127 on router-to-router links.
Does IPv6 have a subnet mask or broadcast address?
IPv6 uses only the prefix length (/64), not a dotted mask, and there is no broadcast address, so every address in the range is usable. The calculator still shows the mask written out in full if you need it.
Why do IPv6 subnets change on the 4th bit?
Each hexadecimal digit is 4 bits, so subnet sizes on a multiple of 4 (/48, /52, /56, /60, /64) line up with whole digits and are easy to read. A /56 out of a /48 just changes the next two hex digits: 2001:db8:0:00xx::/56.
Related: IPv4 & IPv6 subnet calculator · what is CIDR notation? · what is IPv6? · IPv6 test · IPv6 subnet cheat sheet · subnet mask cheat sheet · IP lookup.
API: GET /api/subnet?cidr=2001:db8::/48&split=56 · MCP tool subnet_calc (with split). Nothing is stored.