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

如何在Terraform中检查CIDR块或IP是否属于某一CIDR范围?

在Terraform中检查CIDR块/IP是否被包含的方法

Terraform没有内置的contains_cidr函数,但可以用**cidrcontains内置函数**实现你需要的功能,它的逻辑完全符合你描述的需求:当第二个CIDR块(或单个IP转成的/32 CIDR)被第一个CIDR块包含时,返回布尔值true,否则返回false。

基础用法示例

# 单个IP(转成/32)被包含,返回true
cidrcontains("10.0.0.0/24", "10.0.0.1/32") => true

# IP不在目标CIDR范围内,返回false
cidrcontains("10.0.0.0/24", "10.1.1.1/32") => false

检查不带掩码的单个IP

如果要检查的是不带/32后缀的单个IP,可以直接拼接成/32格式,或者用cidrhost函数转换:

# 直接拼接/32
cidrcontains("10.0.0.0/24", "10.0.0.5/32") => true

# 用cidrhost转换IP为/32 CIDR
cidrcontains("10.0.0.0/24", cidrhost("10.0.0.5", 0)) => true

批量检查场景

如果需要批量验证一组IP或CIDR是否都在目标范围内,可以结合for表达式和all函数:

# 验证所有IP都在10.0.0.0/24内
all([for ip in ["10.0.0.1", "10.0.0.20", "10.0.0.100"] : cidrcontains("10.0.0.0/24", "${ip}/32")])
# 所有IP符合时返回true,否则返回false

内容的提问来源于stack exchange,提问作者Klugscheißer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 07:55:26