IPv6 addresses are denoted by eight groups of hexadecimal quartets separated by colons in between them. IPv6 networks themselves use Classless Inter-Domain Routing (CIDR) notation. Therefore a network or subnet using IPv6 must be a contiguous group of IPv6 addresses whose size must be a power of two.
These addresses can look quite intimidating at first. For example, 2001:cdba:0000:0000:0000:0000:1956:2010, is a valid IPv6 address. You won't usually need to write out so many zeros though.
Any four-digit group of zeros within an IPv6 address can be reduced to a single zero or altogether omitted. So, the following are all valid, and indeed, functionally identical addresses:
There a few other rules you should know about IPv6 addressing. First, while you can dump in-line zeros, you can only do so if it contains nothing but zeros. So, for instance, if instead of 1956 I had 0006, I'd still need to include those extra zeros. Second, you can use the double colon only once in an address.
You should also know that, just like in IPv4, there is a loopback address that points to the local machine. The loopback address for any IPv4-enabled device is 127.0.0.1.
Like IPv4, there is a designated loopback address for IPv6: 0000:0000:0000:0000:0000:0000:0000:0001
You'll be glad to know that you suppress all those zeros and you end up with ::1. And, just as in IPv4, the loopback address can be useful for working out computer problems.
With any luck, you'll never need to write any long IPv6 address out or manually assign one. With an IPv6 router or switch on your network, it will take care of automatically assigning addresses.
You'll also never need to worry about assigning subnet masks again. While IPv6 also uses subnets, they're part of the address. To be exact, the first 48 characters in IPv6 are the network prefix. The next 16 characters, which more often than not are zeros, are the subnet ID. The last 64 characters are the interface identifier.