You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何改写含后向断言的公网IPv4/IPv4-CIDR正则以适配Safari

无后向断言的公网IPv4及IPv4-CIDR验证正则方案

针对Safari不支持后向断言的问题,以下是两个无需后向断言的正则,分别用于验证公网IPv4地址和IPv4-CIDR地址,同时排除私有IP、环回地址、链路本地地址、多播/保留段以及广播/网络地址。


1. 公网IPv4地址验证正则

^(?!(0\.|10\.|127\.|169\.254\.|172\.(1[6-9]|2[0-9]|3[01])\.|192\.168\.|224\.|240\.))(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(?:25[0-4]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[1-9])$

规则说明:

  • 开头的^(?!...)正向否定预查,直接排除所有非公开IP段的起始:
    • 0\.:0.0.0.0/8 保留段
    • 10\.:10.0.0.0/8 私有段
    • 127\.:127.0.0.0/8 环回段
    • 169\.254\.:169.254.0.0/16 链路本地段
    • 172\.(1[6-9]|2[0-9]|3[01])\.:172.16.0.0/12 私有段(覆盖172.16-31.x.x)
    • 192\.168\.:192.168.0.0/16 私有段
    • 224\.:224.0.0.0/4 多播段
    • 240\.:240.0.0.0/4 保留段
  • 中间的IP段匹配逻辑:用标准的IPv4 octet正则匹配前三个分段
  • 最后一段限制为1-254:直接排除以.0(网络地址)和.255(广播地址)结尾的IP

2. IPv4-CIDR地址验证正则

^(?!(0\.|10\.|127\.|169\.254\.|172\.(1[6-9]|2[0-9]|3[01])\.|192\.168\.|224\.|240\.))(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\/(?:[0-2]?[0-9]|3[0-2])$

规则说明:

  • IP部分逻辑和公网IPv4一致,但最后一段允许0-255:CIDR的网络地址(如8.8.8.0/24)属于合法公网CIDR,无需排除
  • 后缀的\/(?:[0-2]?[0-9]|3[0-2]):匹配合法的CIDR前缀长度(0-32),覆盖所有有效前缀范围

测试示例:

类型合法示例非法示例
公网IPv48.8.8.8、1.1.1.1192.168.1.1、127.0.0.1、8.8.8.0
IPv4-CIDR8.8.8.0/24、1.1.1.1/32192.168.1.0/24、8.8.8.8/33

内容的提问来源于stack exchange,提问作者Nicoprrt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 20:42:03