java - IPv6 验证

标签 java regex parsing validation ipv6

我使用了IPAddressUtil.isIPv6LiteralAddress (ipAddress) 方法来验证 IPv6,但是对于 IPV6 的 ipv6-address/prefix-length 格式(格式在 RFC 4291 2.3 节中提到),此方法失败。

谁能知道任何验证“ipv6-address/prefix-length”格式的 validator ?

IPV6的法律表述

  1. ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
  2. 2001:DB8:0:0:8:800:200C:417A
  3. FF01:0:0:0:0:0:0:101
  4. 0:0:0:0:0:0:0:1
  5. 0:0:0:0:0:0:0:0
  6. 2001:DB8::8:800:200C:417A
  7. FF01::101
  8. ::1
  9. ::
  10. 0:0:0:0:0:0:13.1.68.3
  11. 0:0:0:0:0:FFFF:129.144.52.38
  12. ::13.1.68.3
  13. FFFF:129.144.52.38
  14. 2001:0DB8:0000:CD30:0000:0000:0000:0000/60
  15. 2001:0DB8::CD30:0:0:0:0/60
  16. 2001:0DB8:0:CD30::/60

不是 IPV6 的合法代表

  1. 2001:0DB8:0:CD3/60
  2. 2001:0DB8::CD30/60
  3. 2001:0DB8::CD3/60

最佳答案

您可以使用 Guava 库,特别是使用 com.google.common.net.InetAddresses 类,调用 isInetAddress() .


isInetAddress

public static boolean isInetAddress(String ipString)

如果提供的字符串是有效的 IP 字符串文字,则返回 true,否则返回 false。

参数:ipString - 要评估为 IP 字符串文字的字符串

返回:true 如果参数是有效的 IP 字符串文字

关于java - IPv6 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5963199/

相关文章:

javascript - 如何使用后向和前向零长度断言提取括号内的字符串?

javascript - 正则表达式匹配单词数组,不包括缩略词

string - 根据语言环境将货币/浮点字符串解析为浮点类型

php - 分成两个变量?

java - jps/jvmstat 在具有空格字符的目录路径上失败

javascript - 简单的 JavaScript 正则表达式替换不适用于带方括号的 token ?

java - 将 JavaFX TextField 添加到 JPanel

c++ - 为什么 C/C++ 中允许单独使用分号?

java - 如何使用代码生成的 SOAP 客户端?

java - Thymeleaf - 异常评估 SpringEL 表达式