Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Mail Systems
Eclipse Documentation

How To Guides
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Problem Solutions
Privacy Policy




2.3. What 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.:


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

2001:0db8:0100:f101:0210:a4ff:fee3:9566  -> 
� 2001:db8: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.

2001:0db8:100:f101:0:0:0:1  ->  2001:db8: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 (published on 1. April 1996), never seen in the wild, probably an April fool's joke, but here is an example:

# ipv6calc --addr_to_base85 2001:0db8:0100:f101:0210:a4ff:fee3:9566 

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

  Published under the terms of the GNU General Public License Design by Interspire