IPv6 Visualizer
Expand it, compress it, and see which part is the prefix and which is the interface identifier — with the compression rules made explicit.
Local toolYour network plan stays in your browser. Nothing you enter is uploaded, logged, or sent to any server.
Groups
Highlighted prefixDimmed interface identifier
Why it compresses that way
The compression rules
IPv6 addresses are 128 bits written as eight groups of four hex digits. Two rules shorten them, and RFC 5952 makes both mandatory for text output so that the same address is always written the same way.
Leading zeros in a group are dropped. 0db8 becomes db8. A group of all zeros becomes 0, never nothing.
One run of zero groups becomes :: — and only one, because two would be ambiguous. The run chosen is the longest; when two runs are the same length, the first wins. A run of a single zero group is never compressed, since :: would save nothing and add ambiguity.
A /64 is the usual subnet size, which is why the interface identifier is shown separately at that length. It is a convention rather than a rule — other lengths are valid and sometimes necessary — but a great deal of IPv6 assumes it.
The /64 convention
An IPv6 address is 128 bits, and in ordinary use the first 64 identify the network and the last 64 identify the interface. That split is a convention rather than a property of the protocol, but a great deal depends on it: stateless address autoconfiguration, in which a host generates its own address from the advertised prefix, assumes a 64-bit interface identifier and does not work without one.
The consequence surprises people arriving from IPv4, where address space is rationed: a /64 is the normal size for a single segment, no matter how few hosts sit on it, and subnetting longer than /64 is something you do on point-to-point links and infrastructure, not on user segments. A site receiving a /48 has 65,536 of these to allocate. The scarcity habits of IPv4 are the wrong instinct here.
Addresses you will meet that are not global
fe80::/10 is link-local. Every IPv6 interface has one, it is generated automatically, and it is valid only on the segment it is attached to — which is why link-local addresses are written with a zone identifier, as fe80::1%eth0, when the address alone does not say which interface is meant. A great deal of IPv6 machinery, including neighbour discovery and usually your default route, runs over link-local rather than global addresses.
fd00::/8 is the unique local range, IPv6's rough equivalent of private addressing. The specification asks you to generate the 40 bits after the prefix randomly rather than picking something memorable, precisely so that two organisations that later merge do not both turn out to be using fd00::/48. It is the one place in IPv6 addressing where the correct answer is to roll dice rather than to plan.
Related tools
Subnet Calculator handles both families. CIDR Range Calculator shows a prefix's boundaries.