使用 InetAddress 验证 Ipv6/ipv4 地址

Validate Ipv6/ipv4 address using InetAddress

在我们的项目中我们需要使用标准JAVA API 1.4.

我们一直在使用 InetAddress.getByNAme(字符串地址)来验证 Ipv6/v4 地址。现在我们面临问题,即如果 DNS 配置在我们的网络中无效,则验证方法需要更多时间才能获得 return 结果。

我搜索了 google 很多替代方法来避免在验证期间进行 DNS 查找,但我们只有一个选择 getByAddress()

  1. 你们中的任何人都可以建议我如何将 String 中的 IpAddress 转换为 getByAddress() 方法所需的输入参数字节数组吗?
  2. 您还可以解释一下 getByAddress() 是如何验证地址的吗?它会查找一些本地主机吗?

一种可能的方法是使用 Guava 的 InetAddresses.forString() 解析器:

https://code.google.com/p/guava-libraries/source/browse/guava/src/com/google/common/net/InetAddresses.java