将压缩的IPv6地址转换为长格式的代码

问题描述:

我想知道,是否有可用于转换压缩的IPv6地址的表示(例如0:9876:5700 :: 9)的库,到长的IPv6形式(在此情况下:0000:9876:5700:0000:0000:0000:0000:0009).将压缩的IPv6地址转换为长格式的代码

这种变换会进行转换:

ip = ip. replaceAll("^", "0000").replaceAll("::", "0000:0000:0000:0000:0000").replaceAll("^.*?(....)(?=:)|(?<=:)[^:]*(?=....$)", ""); 

在端部的额外replaceAll()确保有在第一/最后的部分,这迎合没有额外的零前导/尾随地址信息(本例中的“0”和“9”)是任意数字的数字。