Whole document tree
    

Whole document tree

How do IPv6 addresses look like?

2.3. How do IPv6 addresses look like?

As previously mentioned, IPv6 addresses are 128 bits long. This number of bits generates very high decimal numbers with up to 39 digits:

2^{128}-1: 340282366920938463463374607431768211455
  

Such numbers are not really addresses that can be memorized. Also the IPv6 address schema is bitwise orientated (just like IPv4, but that's not often recognized). Therefore a better notation of such big numbers is hexadecimal. In hexadecimal, 4 bits (also known as "nibble") are represented by a digit or character from 0-9 and a-f (10-15). This format reduces the length of the IPv6 address to 32 characters.

2^{128}-1: 0xffffffffffffffffffffffffffffffff
  

This representation is still not very convenient (possible mix-up or loss of single hexadecimal digits), so the designers of IPv6 chose a hexadecimal format with a colon as separator after each block of 16 bits. In addition, the leading "0x" (a signifier for hexadecimal values used in programming languages) is removed:

2^{128}-1: ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
  

A usable address (see address types later) is e.g.:

3ffe:ffff:0100:f101:0210:a4ff:fee3:9566
  

For simplifications, leading zeros of each 16 bit block can be omitted:

3ffe:ffff:0100:f101:0210:a4ff:fee3:9566  -> 
¬ 3ffe:ffff:100:f101:210:a4ff:fee3:9566
  

One sequence of 16 bit blocks containing only zeroes can be replaced with "::". But not more than one at a time, otherwise it is no longer a unique representation.

3ffe:ffff:100:f101:0:0:0:1  ->  3ffe:ffff:100:f101::1
  

The biggest reduction is seen by the IPv6 localhost address:

0000:0000:0000:0000:0000:0000:0000:0001  ->  ::1
  

There is also a so-called compact (base85 coded) representation defined RFC 1924 / A Compact Representation of IPv6 Addresses (written 1996), never seen in the wild, but here is an example:

# ipv6calc --addr_to_base85 3ffe:ffff:0100:f101:0210:a4ff:fee3:9566 
Itu&-ZQ82s>J%s99FJXT
  

Info: ipv6calc is an IPv6 address format calculator and converter program and can be found here: ipv6calc