Die 128 Bit einer IPv6-Adresse sind in acht Blöcke à 16 Bit aufgeteilt. In hexadezimaler Schreibweise lässt sich ein 16-Bit-Block mit vier Ziffern bzw. Buchstaben notieren. Als Trennelement fungiert der Doppelpunkt:
- 2001:0620:0000:0000:0211:24FF:FE80:C12C
Um die IPv6-Adresse handlicher zu gestalten, hat sich eine Kurzschreibweise etabliert, bei der führende Nullen innerhalb eines Hexadezimalblocks weggelassen werden können. Besteht ein Hexadezimalblock ausschließlich aus Nullen, muss die letzte Null erhalten bleiben:
- 2001:0620:0000:0000:0211:24FF:FE80:C12C
- 2001:620:0:0:211:24FF:FE80:C12C
Einmal pro IPv6-Adresse ist es zudem möglich, aufeinanderfolgende Null-Blöcke an beliebiger Stelle zu streichen:
- 2001:620:0:0:211:24FF:FE80:C12C
- 2001:620::211:24FF:FE80:C12C
Die aufeinanderfolgenden Doppelpunkte (im Beispiel oben nach dem zweiten Block) zeigen die Auslassung an.
Praktisch stehen Internetnutzern weitaus weniger Adressen zur Verfügung, als das 128-Bit-Format vermuten lässt. Grund dafür ist das Gestaltungsprinzip von IPv6: Anders als der Vorgänger soll der neue Standard eine echte Ende-zu-Ende-Verbindung ermöglichen und die Übersetzung von privaten in öffentliche IP-Adressen auf Basis von NAT (Network Address Translation) überflüssig machen. Grundsätzlich ließe sich auch mit IPv4 einen Ende-zu-Ende-Verbindung realisieren; da der IPv4-Adressraum jedoch zu klein ist, um jedes Gerät mit einer einzigartigen Adresse zu versorgen, wurde ein System mit getrennten Adressbereichen und der vermittelnden Komponente NAT entwickelt. Mit dem neuen Standard lässt sich nun jedes Endgerät, das an ein LAN angeschlossen ist, über eine eigene IP logisch adressieren. IPv6-Adressen beinhalten daher neben dem Abschnitt zur Netzwerkadressierung (auch Netzadresse oder Routing-Präfix genannt) einen eindeutigen Interface-Identifier, der sich aus der MAC-Adresse der Netzwerkkarte des Endgeräts ergibt oder manuell erzeugt wird. Sowohl das Routing-Präfix als auch der Interface-Identifier umfassen jeweils 64 Bit einer IPv6-Adresse.