Expand an IPv6 address to full form or compress it per RFC 5952, with validation

Expanded (full)2001:0db8:0000:0000:0000:0000:0000:0001
Compressed (RFC 5952)2001:db8::1
Groups (hextets)2001 : db8 : 0 : 0 : 0 : 0 : 0 : 1
TypeGlobal unicast (2000::/3)

IPv6 expand/compress runs entirely in your browser — nothing is uploaded.

🌐 IPv6 Expand & Compress — Free Online Tool

Expand or compress an IPv6 address, free. IPv6 addresses (RFC 4291) are 128 bits written as eight groups of four hex digits, but they're usually abbreviated — leading zeros dropped and one run of zero groups collapsed to ::. This tool expands an abbreviated IPv6 address to its full eight-group form, compresses a full address to the canonical short form defined by RFC 5952, validates it and reports its type — entirely in your browser.

🚀 Why use this IPv6 Expand & Compress tool?

It converts between the full and compressed IPv6 forms and applies the RFC 5952 canonical rules, so addresses you store, compare or log are unambiguous and consistently formatted. 100% free, no registration, and complete privacy — everything runs locally in your browser, so your data never touches a server.

Key Features

🔎Expand to full form

Pads every group to four hex digits and writes all eight groups, e.g. 2001:db8::1 → 2001:0db8:0000:0000:0000:0000:0000:0001.

🗜️Compress (RFC 5952)

Collapses the longest run of zero groups to :: and strips leading zeros to produce the canonical short form.

🏷️Type detection

Identifies global unicast (2000::/3), link-local (fe80::/10), unique-local (fc00::/7) and the unspecified address.

🔒100% private

Parsing runs locally in your browser; nothing you enter is uploaded or stored.

Popular Use Cases

Storage & matching

  • Normalize before storing
  • Match addresses reliably
  • De-dupe logs

Config & display

  • Canonical form in configs
  • Readable short form in UIs
  • Consistent ACLs

Learning

  • Understand :: compression
  • See the full 128-bit layout
  • Identify address scope

What It Handles

Expands

  • Pad groups to 4 hex
  • Write all 8 groups
  • Resolve ::

Compresses

  • Longest zero run → ::
  • Strip leading zeros
  • RFC 5952 canonical

Privacy

  • Client-side only
  • No network calls
  • Runs offline

Related Tools

Sources & References

Frequently Asked Questions

How do I expand an IPv6 address?

Restore the dropped leading zeros in each group and replace :: with the right number of 0000 groups so there are eight groups total. For example fe80::1 expands to fe80:0000:0000:0000:0000:0000:0000:0001. This tool does it automatically.

What is the canonical IPv6 form?

RFC 5952 defines a single recommended text form: lowercase hex, no leading zeros in a group, and the longest run of zero groups (at least two) compressed to :: — appearing only once. Storing addresses in this form makes string comparison reliable.

Why does :: appear only once?

Because :: stands for 'one or more groups of zeros', allowing it twice would be ambiguous — you couldn't tell how many zero groups each :: represents. RFC 5952 requires a single ::.

How can I tell an IPv6 address's type?

The high bits decide scope: fe80::/10 is link-local, fc00::/7 is unique-local, 2000::/3 is global unicast and :: is the unspecified address. The tool flags these for you.

Is my input uploaded anywhere?

No. Expansion and compression happen entirely in your browser; nothing you type leaves your device.

🎓 Pro Tips

  • Tip 1: Store IPv6 addresses in RFC 5952 canonical form so string equality works — two different texts can otherwise represent the same address.
  • Tip 2: When matching addresses in code, normalize both sides first; never compare the raw user-entered text directly.
  • Tip 3: Standard reference: IPv6 text representation is defined in RFC 5952 — https://www.rfc-editor.org/rfc/rfc5952.