【发布时间】:2012-02-23 08:35:00
【问题描述】:
我想检查一个字符串是 IPv4 还是 IPv6 地址,但没有别的。有什么方法可以使用标准的 java 库来实现这一点?
我知道:
- InetAddress.getByName(str) - 但它接受主机名
- IPAddressUtil.isIPv4LiteralAddress(str) - 但它是一个内部类,会给出编译器警告
我知道我可以使用正则表达式,但我更喜欢使用现有的方法。
【问题讨论】:
-
我认为我们可以同意没有标准(如默认情况下包含)方式来完成此操作。我最终做的是通过一个草率的 IPv4|6 正则表达式运行假定的 IP 地址(以整理出任何不 看起来 像有效 IP 地址的东西),然后调用 InetAddress.getByName(str)在地址上。
-
你能在java中发布工作解决方案吗?