在 Java 中将 IPV6 地址转换为压缩形式
我已经使用了压缩IPv6地址的方法,输出是,但我需要。,基本上压缩输出应该基于RFC 5952标准,即Inet6Address.getByName("2001:db8:0:0:0:0:2:1").toString()
2001:db8:0:0:0:0:2:1
2001:db8::2:1
-
尽可能缩短:例如,2001:db8:0:0:0:0:2:1 必须缩短为
2001:db8::2:1。同样,2001:db8::0:1 是不可接受的,因为符号 “::” 可用于生成更短的表示形式 2001:db8::1。 -
处理一个 16 位 0 字段:符号“::”不得仅用于缩短一个 16 位 0 字段。例如,表示形式 2001:db8:0:1:1:1:1:1 是正确的,但 2001:db8::1:1:1:1:1 是不正确的。
-
“::” 位置中的选项 : = 当放置 “::” 时,必须缩短连续 16 位 0 字段的最长运行时间(即,具有三个连续零字段的序列在 2001 年缩短:0:0:1:0:0:0:1)。当连续的 16 位 0 字段的长度相等时(即 2001:db8:0:0:0:1:0:1),必须缩短第一个零位序列。例如,2001:db8::1:0:0:1 是正确的表示形式。
我还检查了Stack溢出中的另一篇文章,但没有指定条件(放置::)的示例选择。
有没有java库来处理这个问题?任何人都可以帮我吗?
提前致谢。