WEB开发网
开发学院软件开发Java 使用 Java 开发兼容 IPv6 的网络应用程序 阅读

使用 Java 开发兼容 IPv6 的网络应用程序

 2010-06-08 00:00:00 来源:WEB开发网   
核心提示: 遵从这些规则,如果因为省略而出现了两个以上的冒号的话,使用 Java 开发兼容 IPv6 的网络应用程序(3),可以压缩为一个,但这种零压缩在地址中只能出现一次,笔者参阅了一些材料,包括上文所述的方法 sun.net.util.IPAddressUtil.isIPv6LiteralAddress

遵从这些规则,如果因为省略而出现了两个以上的冒号的话,可以压缩为一个,但这种零压缩在地址中只能出现一次。因此:

2001:0DB8:0000:0000:0000:0000:1428:57ab 
2001:0DB8:0000:0000:0000::1428:57ab 
2001:0DB8:0:0:0:0:1428:57ab 
2001:0DB8:0::0:1428:57ab 
2001:0DB8::1428:57ab 

都是合法的地址,并且他们是等价的。但 2001::25de::cade 是非法的。(因为这样会使得搞不清楚每个压缩中有几个全零的分组)。同时前导的零可以省略,因此:2001:0DB8:02de::0e13 等于 2001:DB8:2de::e13。

IPv6 地址校验

IPv4 地址可以很容易的转化为 IPv6 格式。举例来说,如果 IPv4 的一个地址为 135.75.43.52(十六进制为 0x874B2B34),它可以被转化为 0000:0000:0000:0000:0000:0000:874B:2B34 或者::874B:2B34。同时,还可以使用混合符号(IPv4- compatible address),则地址可以为::135.75.43.52。

在 IPv6 的环境下开发 Java 应用,或者移植已有的 IPv4 环境下开发的 Java 应用到 IPv6 环境中来,对于 IPv6 网络地址的验证是必须的步骤,尤其是对那些提供了 UI(用户接口)的 Java 应用。

所幸的是,从 Java 1.5 开始,Sun 就增加了对 IPv6 网络地址校验的 Java 支持。程序员可以通过简单地调用方法 sun.net.util.IPAddressUtil.isIPv6LiteralAddress() 来验证一个 String 类型的输入是否是一个合法的 IPv6 网络地址。

为了更深入一步地了解 IPv6 的网络地址规范,及其验证算法,笔者参阅了一些材料,包括上文所述的方法 sun.net.util.IPAddressUtil.isIPv6LiteralAddress() 的源代码,以及目前网络上流传的一些 IPv6 网络地址的正则表达式,发现:

上一页  1 2 3 4 5 6 7  下一页

Tags:使用 Java 开发

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接