IP 函数
本文档介绍了可用于 IP 地址操作和比较的函数。
ipv4_to_cidr(ip_string [, subnet_mask])
描述:
将 IPv4 地址字符串转换为 CIDR 表示法。如果提供了 subnet_mask 参数(UInt8 类型,取值范围 0-32),则使用指定的子网掩码。否则,函数会根据输入字符串末尾的零或提供的八位字节数来自动检测子网(例如,'192.168' 表示 /16,'192' 表示 /8)。生成的 CIDR 表示法中的 IP 地址会根据子网掩码将主机位清零。
参数:
ip_string: String - IPv4 地址字符串(例如,'192.168.1.1','10.0.0.0','172.16')。不完整的地址将用零补全。subnet_mask(可选): UInt8 - 期望的子网掩码长度(例如,24, 16, 8)。
返回类型:
String - CIDR 表示法中的 IPv4 地址(例如,'192.168.1.0/24')。若输入无效,则返回 NULL。
示例:
-- 自动检测子网
SELECT ipv4_to_cidr('192.168.1.0');
-- 输出: '192.168.1.0/24'
SELECT ipv4_to_cidr('172.16');
-- 输出: '172.16.0.0/16'
-- 指定子网掩码
SELECT ipv4_to_cidr('192.168.1.1', 24);
-- 输出: '192.168.1.0/24'
SELECT ipv4_to_cidr('10.0.0.1', 16);
-- 输出: '10.0.0.0/16'