set_masklen()
是一个用于设置 inet
值的网络掩码长度的系统函数。
set_masklen()
在 PostgreSQL 7.2 中添加。
用法
set_masklen (inet
,integer
) →inet
set_masklen (cidr
,integer
) →cidr
如果提供 -1
作为网络掩码长度,则网络掩码长度将设置为地址类型的最大值(IPv4 为 32 位,IPv6 为 128 位)。截至 2023 年,此功能未在文档中说明。
如果提供无效的 inet
或 cidr
值,则会引发 ERROR
。
更改历史记录
- PostgreSQL 7.2
- 添加(提交 d4a4d4c3)
示例
set_masklen()
的基本用法示例
postgres=# SELECT set_masklen('192.168.1.2/24', 16); set_masklen ---------------- 192.168.1.2/16
在上面的示例中,如果提供 inet
值,则地址部分不会更改。对于 cidr 值,新网络掩码右侧的地址位将设置为零。
postgres=# SELECT set_masklen('192.168.1.0/24'::cidr, 16); set_masklen ---------------- 192.168.0.0/16 (1 row)
将 -1 作为网络掩码长度提供
postgres=# SELECT set_masklen('192.168.1.0/24'::cidr, -1); set_masklen ---------------- 192.168.1.0/32 (1 row)
参考
- PostgreSQL 文档: IP 地址函数