Visual RFC.
ALL RFCs / RFC 5952
Read the RFC ↗

RFC 5952 / START HERE

IPv6 text, before the details

IPv6 address text representation is the written form of an Internet Protocol version 6 address. RFC 5952 is a recommendation for consistent spelling, not a new IP version.

An IPv6 address is a 128-bit value, often written as eight groups of hexadecimal digits. This guide shows how to print it compactly without changing those bits.

The idea in one picture

  1. Valid spellings

  2. Same 128 bits

  3. Consistent output

A simplified picture of the idea; the chapters explain the actual mechanisms.

Why it exists

Several legitimate strings can describe the same address. Consistent output makes logs, configuration files and searches easier to read. RFC 5952 updates RFC 4291’s text guidance while requiring legitimate RFC 4291 input to remain accepted.

A familiar example

A log might contain 2001:0DB8:0:0:0:0:0:1 while a configuration uses 2001:db8::1. They name the same address. Learn which zeros to omit, when to use a dotted IPv4 tail, and how brackets separate a port. Matching spelling does not prove identity or reachability.

Helpful background

You can start here without reading another RFC. If these ideas are unfamiliar, these short introductions may help.

What you’ll learn next

Begin with chapter one, or choose a topic.

  1. One address, several spellingsIPv6 addresses are 128-bit values. Several strings can name the same value; canonical means the chosen consistent output spelling. This makes logs and searches easier to read.
  2. Trim groups without changing bitsRemove padding at the beginning of each hexadecimal group, use lowercase letters, and leave a visible 0 for an all-zero group.
  3. Choose the zero runA double colon replaces consecutive all-zero groups. Choose the longest run; if tied, choose the first.
  4. Recognize an IPv4 tailSome IPv6 address forms embed an IPv4 address in the final 32 bits. Mixed notation writes only those bits as four decimal octets.
  5. Keep ports and prefixes separateBrackets separate an IPv6 literal from a port; a slash introduces a prefix length. Text normalization does not prove identity or connectivity.
Start with chapter one →

This introduction explains RFC 5952 (2010). Read the original RFC ↗