IPv6 Explained Table

–IPv6 addresses are 128 bits, written as 8 groups of 4 hex digits
Rule / TypeExampleExplanation
Full form2001:0db8:0000:0000:0000:0000:0000:00018 groups of 4 hex digits separated by colons
Leading zeros2001:db8:0:0:0:0:0:1leading zeros in each group may be dropped
:: compression2001:db8::1:: replaces one or more all-zero groups (once per address)
Loopback::1the IPv6 equivalent of 127.0.0.1
Unspecified::all zeros - the IPv6 equivalent of 0.0.0.0
Link-localfe80::/10auto-configured on every interface, not routable
Unique localfc00::/7private addresses, the IPv6 equivalent of RFC 1918
Multicastff00::/8one-to-many delivery, starts with ff
Global unicast2000::/3publicly routable addresses, starts with 2 or 3
IPv4-mapped::ffff:192.168.1.1IPv4 address embedded in IPv6 for dual-stack transition
The rules and address types above are verbatim from RFC 4291 (IP Version 6 Addressing Architecture), the specification that defines the 128-bit IPv6 address format. The :: compression rule is the one people get wrong: it can appear at most once per address, because twice would make the expansion ambiguous. Bottom line: IPv6 has 340 undecillion addresses (2^128) - enough to assign one to every atom on Earth’s surface - yet the compression rules and address-type prefixes still trip up developers who learned on IPv4. Network neighbours: IPv4 subnet cheatsheet, binary powers table, hex to RGB, URL parser.

IPv6 addresses are 128 bits written as eight groups of four hexadecimal digits separated by colons - and because that is unreadable, the format has exactly two compression rules: drop leading zeros in each group, and replace one run of all-zero groups with a double colon (::). This table walks through every rule and address type from RFC 4291.

The address types matter because IPv6 is not one flat space: fe80:: addresses exist on every interface but never route, fc00:: addresses are private, ff00:: addresses are multicast, and 2000::/3 is the public internet.

How to use

  1. Filter by keyword or address type to find the rule you need - the full form and compression examples are the first three rows.
  2. Check the address-type rows to decode any IPv6 address: the first bits determine whether it is link-local, unique-local, multicast or global.
  3. Click a row to copy the example address for testing or documentation.

Frequently asked questions

What is the :: compression rule and when can I use it?

The double colon replaces one or more consecutive all-zero groups. It can appear at most once per address - if it appeared twice, the reader would not know how many zero groups each :: represents. 2001:db8:0:0:0:0:0:1 becomes 2001:db8::1, but 2001:db8:0:1:0:0:0:1 can only compress the second run: 2001:db8:0:1::1.

Why does IPv6 exist if IPv4 works?

IPv4 has 4.3 billion addresses (32 bits), which seemed infinite in 1981 but ran out in 2011. IPv6 has 340 undecillion (128 bits) - enough for every device, every sensor, and every grain of sand with room to spare. NAT, the IPv4 workaround, breaks the end-to-end principle that the internet was built on.

What are link-local addresses (fe80::/10) for?

Every IPv6 interface automatically configures a link-local address the moment it comes up, before any DHCP or manual configuration. These addresses work only on the local network segment - routers do not forward them. They are used for neighbour discovery, router advertisement and as a fallback when no global address exists.

What are IPv4-mapped addresses (::ffff:x.x.x.x)?

They embed an IPv4 address inside the IPv6 format for dual-stack transition: ::ffff:192.168.1.1 represents the IPv4 address 192.168.1.1. Operating systems and applications use them internally when an IPv6 socket speaks to an IPv4 peer, so one code path handles both protocols.

Related tools