当前位置: 首页 > 面试题库 >

IPv6验证

翁俊良
2023-03-14
问题内容

我使用IPAddressUtil.isIPv6LiteralAddress (ipAddress)了验证IPv6的方法,但是这种方法对于IPV6的ipv6-address /前缀长度格式(RFC
4291
第2.3节中提到的格式)失败。

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

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

不是IPV6的法律声明

  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 是指第 6 版因特网协议(Internet Protocol version 6),在它的名字中已经表明了它的重要性 —— 与因特网一样重要!因特网协议(Internet Protocol,简称 IP)是解决不同网络间互联需求的解决方案,并且已经成为了各种数字通信的“事实标准”。现在,大多数能够收发数字信息的设备都存在因特网协议。 IETF(Internet Engineering Ta

  • IPv6 CARE, 全称是 "IPv6 Compliance Automatic Runtime Experiment", 是一个用来诊断 IPv6 兼容的应用程序,它检测一些非 IPv6 兼容的函数调用,例如 gethostbyname() 同时生成诊断报告。

  • 问:如何让客户端即能通过ipv4地址访问,也能通过ipv6地址访问? 答:在初始化容器的时候监听地址写[::]即可。 例如 $worker = new Worker('http://[::]:8080'); $gateway = new Gateway('websocket://[::]:8081');

  • 背景 研究IPv6 socket编程原因: Supporting IPv6 in iOS 9</br> WWDC2015苹果宣布在ios9支持纯IPv6的网络服务,并且要求2016年提交到app store的应用必须兼容纯IPv6的网络,要求适配的系统版本是ios9以上(包括ios9)。 写这篇文章虽然是来源于iOS的需求,但是下面的内容除了特别说明外,大部分都适用于其他平台。</br> IPv6

  • 配置 IPv6 网络 1 - 创建一个网络接口 eno1 # setenforce to 'Permissive' if default enforce is 'Enforcing' setenforce 0 # create namespace ip netns add hidden # Active ::1 inside namespace ip netns exec hidden ip

  • 问题内容: 我想使用的方法获取http://en.wikipedia.org的内容。 我发现en.wikiepdia.org同时具有IPv4和IPv6地址: 如何使用IPv6地址访问该站点? 问题答案: 此jvm参数将起作用。