Enter an IPv6 address and prefix length to calculate its network, first and last addresses, and total address count. The result also includes the normalized address for checking an IPv6 CIDR range.
Runs locally in your browserOne address, with or without a prefix, describes a whole IPv6 block. The page normalizes the address, works out the network it belongs to with its first and last address, and gives the size of the block as host bits and as an exact number of addresses. The arithmetic runs on BigInt in the browser, so /0 and /128 come out exact.
The tool reads text only. It does not query DNS, ping the host or contact any service, and it keeps working with the network disconnected. The result therefore describes the block the text selects; it says nothing about whether an address is assigned, reachable or routed.
The prefix counts the leading bits that identify the network; the remaining 128 minus prefix bits identify an interface inside it. A /64 keeps 64 bits, so the block runs up to ffff:ffff:ffff:ffff and holds 2^64 addresses, while /127 holds two addresses and /128 exactly one.
IPv6 defines no broadcast address and no unusable network address, so every address in a block can be assigned. Writing the network address with a zero interface identifier is a routing convention, not a rule of the protocol, which is why this page reports bounds and counts instead of subtracting hosts.
RFC 4291 accepts up to four hexadecimal digits per group, one :: standing for one or more groups of zeros, and a dotted quad in the last 32 bits, so ::ffff:192.0.2.1 and ::ffff:c000:201 are the same address. Letter case and leading zeros are free: 2001:0DB8:0000::1 equals 2001:db8::1.
The normalized field prints one accepted spelling following RFC 5952: lowercase, no leading zeros, the longest run of zero groups written as ::, the leftmost run winning a tie, and a single zero group left in full. IPv4-mapped addresses appear in the mixed form the same RFC recommends for the ::ffff:0:0/96 prefix, for example ::ffff:192.0.2.1.
The page works on text, so it cannot say whether an address is allocated to you, whether the host answers, or whether a router carries the prefix. fe80::/10, fc00::/7, ff00::/8 and 2001:db8::/32 are recognised by their roles, but ownership comes from the registry and reachability from the network.
Group syntax, the prefix range 0-128 and embedded IPv4 octets are checked strictly, so a value accepted here is read the same way by any conforming implementation. A refused value names the reason and the part that failed, which is what makes the message useful when the text came from a configuration file or a log.