今天看了有关IPV6地址的一些内容,其实一开始是我打算在安装了ubuntu的机子上ping IPV6的地址,然而显示的
是unknown host,上网查证才知道原来我没有安装这个IPV6的模块啊,另外对这个IPV6也不是很熟悉,借此顺便整理一
下。
IPv6地址表示
IPv6地址为128位长,但通常写作8组,每组为四个十六进制数的形式。例如:
FE80:0000:0000:0000:AAAA:0000:00C2:0002 是一个合法的IPv6地址。要是嫌这个地址看起来还是太长,这里还有种办法来缩减其长度,叫做零压缩法。如果几个连续段位的值都是0,那么这些0就可以简单的以::来表示,上述地址就可以写成FE80::AAAA:0000:00C2:0002。这里要注意的是只能简化连续的段位的0,其前后的0都要保留,比如FE80的最后的这个0,不能被简化。还有这个只能用一次,在上例中的AAAA后面的0000就不能再次简化。当然也可以在AAAA后面使用::,这样的话前面的12个0就不能压缩了。这个限制的目的是为了能准确还原被压缩的0.不然就无法确定每个::代表了多少个0.
2001:0DB8:0000:0000:0000:0000:1428:0000
2001:0DB8:0000:0000:0000::1428:0000
2001:0DB8:0:0:0:0:1428:0000 (
注意这里其实是根据前导的0可以省略的原则来的,像4个0压缩的话,保留一个就
可以了)。
2001:0DB8:0::0:0:1428:0000
2001:0DB8::1428:0000都是合法的地址,并且他们是等价的。但
2001:0DB8::1428::是非法的。(因为这样会使得搞不清楚每个压缩中有几个全零的分组)
同时前导的零可以省略,因此:
2001:0DB8:02de::0e13等价于2001:DB8:2de::e13