我有一个 192.168.1.1/32 形式的 CIDR,我需要能够将 /29 转换为 255.255.255.0 的传统子网表示法(我的子网可能有误)。这需要在 T-SQL (MS SQL) 中完成,而且我也不太可能被允许使用 CLR 或任何其他非标准 2008r2 功能。
最终结果是我需要将 192.168.1.1/32 转换为 192.168.1.1 255.255.255.0 其中 /32 可以是任何有效的 /X
我有一个 192.168.1.1/32 形式的 CIDR,我需要能够将 /29 转换为 255.255.255.0 的传统子网表示法(我的子网可能有误)。这需要在 T-SQL (MS SQL) 中完成,而且我也不太可能被允许使用 CLR 或任何其他非标准 2008r2 功能。
最终结果是我需要将 192.168.1.1/32 转换为 192.168.1.1 255.255.255.0 其中 /32 可以是任何有效的 /X
也许我不理解这个问题,但为什么它很复杂?
select
case
when right(cidr,2) = '24' then mask = '255.255.255.0'
when right(cidr,2) = '25' then mask = '255.255.255.128'
when right(cidr,2) = '26' then mask = '255.255.255.192'
when right(cidr,2) = '27' then mask = '255.255.255.224'
when right(cidr,2) = '28' then mask = '255.255.255.240'
when right(cidr,2) = '29' then mask = '255.255.255.248'
when right(cidr,2) = '30' then mask = '255.255.255.252'
when right(cidr,2) = '31' then mask = '255.255.255.254'
end as mask
from atable
where patindex(cidr,'%/[0-9][0-9]') > 0