IPv6 Compressor
Normalize an IPv6 address into its shortest standard text form.
Normalize verbose IPv6 notation
IPv6 text can contain leading zeros and one compressed run, so visually different strings may represent the same 128-bit address. This tool parses full or already compressed notation, expands it to exactly eight hextets, validates every hexadecimal group, removes leading zeros, and replaces the longest run of at least two zero hextets with a double colon.
The default address becomes 2001:db8::ff00:42:8329. When two zero runs have the same length, the first is compressed, giving a deterministic canonical form. An embedded IPv4 tail is converted to its final two hextets before compression, while more than one double colon or the wrong number of groups returns an error.
Deterministic zero-run compression
Compression changes only the text representation, not the address bits or prefix. A zone identifier is removed before normalization because it is interface context rather than part of the IPv6 address itself. All calculations run locally in your browser. Preserve a zone identifier separately when an operating-system socket requires one, and include the prefix length separately when working with a subnet.
Frequently Asked Questions
Which zero run is compressed when two are equal?
The first longest run is chosen, matching canonical IPv6 text recommendations.
Can an IPv6 address contain two double colons?
No. A second double colon would make the number of omitted hextets ambiguous and is rejected.
Does compression change the address value?
No. It only shortens the textual notation after parsing the same 128-bit value.
Browse the full set of free, private, in-browser tools.