ipv6的表示、ipv6与ipv4之间的转换、ipv6地址大小判定

本文介绍了IPv6地址的表示方法,包括标准表示、压缩表示及IPv4内嵌表示,并讲解了IPv6与IPv4之间的转换方法及IPv6地址大小判定的技巧。

本文对初步接触到ipv6时,常遇到的三个疑问(ipv6的表示、ipv6与ipv4之间的转换、ipv6地址大小判定)进行了简单介绍。

ipv6的表示

关于单个ipv6地址的基本表示有:标准表示、压缩表示、ipv4内嵌表示,网段的表示常见的有:地址前缀表示(类似于ipv4的掩码形式)

-----------------------------

IPV6 32位的 址被分割为,其中每个,并且每个 来分开128位的16位段来表示0x0000~0xFFFF之间的十六进制的数宇表示 :
010000bc,当然书写这些地址也不是一件令人愉快的事情幸运地是有两条规则可以用来简化:任何一个;任何一个,就认为忽略书写的数字是起始的 36, 1944 0 d0b这里要注意的是;,因为这样做会使0是在所写的数字之前还是在其之后。另外5个分段全部是, 址中具有—长串的ff0200000000ff02 0 0:任何由全16位段的单个连续的字符串,上面例子中的地址可以表示成如下格式,这条规则强调的是仅仅对于单个连续不间断的全,在一个:
00000000, 为它们都只使用了2001 02001 0,请读者注意,200195
之所以认为上面这个缩写方式是错误的0字符串的长度是含混不清的 0d0200140095
0000001420010014:00000095
不像)可以通过点分十进制或十六进制地址掩码标识,IPv6协议的前缀始终通过位计数的方式来标识。更确切地说 /IPv6地址的起始位有多少位是前缀位。举一个例子:3ffe ad0b/64当读者需要书写一个IP叫地址一样的书写方式将所有的主机位设置为3ffe a 成的 在本书中 第—个实例就是缺省地址 中讨论 形式/0

第二个使用全 址的实例是未指定地址,用来标识一个还未确定的实际,它与缺省地址的书写方式是有区别的/128

-----------------------------

除上述形式外,在实际应用中还可能遇到一种情况,如下所示: 
短格式地址段表示为:”2001:d02::14:0:0:95-25f4:55ed”(单个ipv6基本表示-不包含::的单个ipv6后半部分表示) 
长格式地址段表示为:”2001:d02::14:0:0:95-::25f4:55ed”(单个ipv6基本表示-单个ipv6基本表示) 
所表示的是一组ipv6地址范围,此范围以第一个ipv6地址为起点至第二个ipv6地址或者补全的ipv6地址为终点。

ipv6与ipv4之间的转换

由于ipv4到ipv6之间有一个漫长的过渡过程,因此,需要将ipv6兼容ipv4或者映射为ipv4。 
在兼容情况下:如果ipv4表示为“X.X.X.X”,那么对应的ipv6即为“::X.X.X.X”(高位补零) 
在映射情况下:如果ipv6表示为“::FFFF:X.X.X.X”(33-128位为::FFFF),这类情况下的ipv6将会被映射为ipv4,使用java.net.InetAddress包中的InetAddress.getByName(str)方法将自动实现映射。

ipv6地址大小判定思路

在实际处理ipv6的过程中常常会需要对ipv6的大小进行判定,用于排序、判断区间等应用。但是,直接按照字符串进行比较会出现判定不正确的问题,比如,2001:d02::14:0:0:95会比2001:1d02::14:0:0:95大,而实际是更小。因此,在ipv6排序的时候需要对ipv6字符串进行处理。 
1.首先,将ipv6转换为字符串(java下,使用getHostAddress()方法); 
2.将所有形式的ipv6地址字符串转换为完整形式的ipv6字符串(XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX),即,将压缩掉的0全部补全; 
3.对字符串进行字符串比较即可。 
ps:同样的思路可应用于ipv4的排序中。


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值