给定一个包含其中一种格式的 IPv6 地址的字符串,是否有一种 Java 标准方法可以对同一地址的不同格式使用相同的标准化值来标准化它?
即
normalise("2001:db8:0:0:1:0:0:1") = x
normalise("2001:db8::1:0:0:1") = x
normalise("2001:db8:0:0:1::1") = x
最佳答案
您可以轻松实现这一目标
通过使用 InetAddress.getByName(String)
解析字符串
然后用 getHostAddress()
转换回字符串:
public static String normalize(String s) throws UnknownHostException {
return InetAddress.getByName(s).getHostAddress();
}
对于所有 3 个示例,此方法都会返回 "2001:db8:0:0:1:0:0:1"
。
顺便说一句:上面的代码可以标准化 IPv6 和 IPv4 地址。
关于java - 如何在Java中标准化IPv6地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52135144/