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

如何使用Python正则表达式检测IP地址中连续递增的4个octet

检测IPv4地址octet连续递增的实现方案

纯正则本身不支持动态数值运算逻辑,硬用|暴力枚举虽然可行,但灵活性差,更推荐用「IP拆分+逻辑判断」的方案实现,性能更高且易维护。

最优实现方案

核心思路是先提取IP的四个octet转成整数,再校验是否满足严格连续递增的规则,代码如下:

def is_strictly_increasing_ip(ip: str) -> bool:
    # 尝试将IP拆分并转换为整数列表
    try:
        octets = list(map(int, ip.split(".")))
    except ValueError:
        # 存在非数字的octet,直接返回不匹配
        return False
    # 先校验是否为合法IPv4地址
    if len(octets) != 4 or any(o < 0 or o > 255 for o in octets):
        return False
    # 校验四个octet是否连续递增(后一项 = 前一项 + 1)
    return all(octets[i + 1] == octets[i] + 1 for i in range(3))

测试示例:

  • is_strictly_increasing_ip("1.2.3.4") 返回 True
  • is_strictly_increasing_ip("1.2.3.3") 返回 False
  • is_strictly_increasing_ip("252.253.254.255") 返回 True

正则兼容方案

如果场景强制要求只能用正则匹配,可以自动生成所有符合规则的IP枚举正则,不需要手动手写:

import re

# 自动生成匹配规则
increasing_ip_regex = re.compile(
    "|".join(f"{i}\.{i+1}\.{i+2}\.{i+3}" for i in range(253))
)

# 匹配测试
print(increasing_ip_regex.fullmatch("1.2.3.4") is not None) # True
print(increasing_ip_regex.fullmatch("1.2.3.3") is not None) # False

该正则总长度不到4000字符,匹配效率完全满足常规使用需求,仅灵活性弱于逻辑判断方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:09:04