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()”的任何评论、建议或更正。 here