IPv6验证

我使用IPAddressUtil.isIPv6LiteralAddress

(ipAddress)了验证IPv6的方法,但是这种方法对于IPV6的ipv6-address /前缀长度格式(RFC

4291第2.3节中提到的格式)失败。

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

  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:0101
  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

回答:

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

回答:

查看是否可行:

try {

if (subjectString.matches(

"(?ix)\\A(?: # Anchor address\n" +

" (?: # Mixed\n" +

" (?:[A-F0-9]{1,4}:){6} # Non-compressed\n" +

" |(?=(?:[A-F0-9]{0,4}:){2,6} # Compressed with 2 to 6 colons\n" +

" (?:[0-9]{1,3}\\.){3}[0-9]{1,3} # and 4 bytes\n" +

" \\z) # and anchored\n" +

" (([0-9A-F]{1,4}:){1,5}|:)((:[0-9A-F]{1,4}){1,5}:|:) # and at most 1 double colon\n" +

" |::(?:[A-F0-9]{1,4}:){5} # Compressed with 7 colons and 5 numbers\n" +

" )\n" +

" (?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\\.){3} # 255.255.255.\n" +

" (?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9]) # 255\n" +

"| # Standard\n" +

" (?:[A-F0-9]{1,4}:){7}[A-F0-9]{1,4} # Standard\n" +

"| # Compressed\n" +

" (?=(?:[A-F0-9]{0,4}:){0,7}[A-F0-9]{0,4} # Compressed with at most 7 colons\n" +

" \\z) # and anchored\n" +

" (([0-9A-F]{1,4}:){1,7}|:)((:[0-9A-F]{1,4}){1,7}|:) # and at most 1 double colon\n" +

"|(?:[A-F0-9]{1,4}:){7}:|:(:[A-F0-9]{1,4}){7} # Compressed with 8 colons\n" +

")/[A-F0-9]{0,4}\\z # Anchor address"))

{

// String matched entirely

} else {

// Match attempt failed

}

} catch (PatternSyntaxException ex) {

// Syntax error in the regular expression

}

大约一年前,我购买了一个非常有用的程序RegexMagic,用于计划使用的一些复杂正则表达式。

假定它是Java,所以应该编译,我假设/ 60可以在0000和FFFF的范围之间,您可以修改最后一部分。

/ [A-F0-9] {0,4}是我添加到正则表达式中以匹配您的示例的内容。

以上是 IPv6验证 的全部内容, 来源链接: utcz.com/qa/430682.html

回到顶部