set_masklen()

用于设置 inet 或 cidr 值的网络掩码长度的函数

set_masklen() 是一个用于设置 inet 值的网络掩码长度的系统函数。

set_masklen()PostgreSQL 7.2 中添加。

用法

set_masklen ( inet, integer ) → inet
set_masklen ( cidr, integer ) → cidr

如果提供 -1 作为网络掩码长度,则网络掩码长度将设置为地址类型的最大值(IPv4 为 32 位,IPv6 为 128 位)。截至 2023 年,此功能未在文档中说明。

如果提供无效的 inetcidr 值,则会引发 ERROR

更改历史记录

示例

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)

分类

网络系统函数

另请参阅

masklen()

反馈

提交任何关于“set_masklen()”的评论、建议或更正 此处