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

正则匹配私网IP前两个八位组为何可成功匹配完整IP地址

正则匹配生效逻辑解答

核心原因是混淆了正则子串匹配与全串匹配的判定规则,具体逻辑如下:

  • Azure ATP(现Microsoft Defender for Identity)底层使用Kusto查询语法,其中matches regex操作符默认采用子串匹配规则:只要被检测字段中存在任意连续子串符合正则匹配要求,整条记录就会判定为匹配成功,不要求正则覆盖字符串的全部内容。
  • 正则片段(^172\.2[0-9]\.)携带行首锚定符^,匹配规则为:字符串起始位置需满足172.+数字2+0-9范围内单个数字+.的格式。对于IP字符串172.20.1.9,开头的172.20.完全命中该片段规则,因此即便正则未编写后续.1.9部分的匹配逻辑,整条IP仍会被判定为匹配成功。
  • 当前使用的正则逻辑严谨:所有匹配分支均添加行首锚定^,仅会匹配以私网地址前缀开头的字符串,不会出现“字符串中间包含私网前缀就误判”的问题,针对格式标准的IP字段,该写法可准确覆盖所有目标私网网段,运行结果符合预期属于正常表现。

当前使用的查询语句如下:

| where From_IP matches regex @'(^127\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^192\.168\.)'

补充:如果需要实现正则必须匹配完整字符串的效果,需要在正则末尾添加字符串结束锚定$并补全后续IP段的匹配规则;但在当前私网IP匹配场景下,现有写法执行效率更高,完全满足使用需求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 05:51:28