V6_SUBNETN

从变长二进制或字母数字 IPv6 地址计算无类别域间路由 (CIDR) 格式的子网地址。

行为类型

不可变

语法

V6_SUBNETN ( address, subnet-size)

参数

address
IPv6 地址为 VARBINARY 或 VARCHAR。传入格式决定输出的日期类型。如果传入 VARBINARY 地址,则 V6_SUBNETN 返回 VARBINARY 值。如果传入一个 VARCHAR 值,则返回 VARCHAR。
subnet‑size
子网的大小为 INTEGER。

注意

下述语法屏蔽 BINARY IPv6 地址 B,使得 S 最左侧的 N 位形成子网地址,而剩余最右侧的位被清除。

V6_SUBNETNB 右侧填充 0 至 16 字节 (若必要)并屏蔽 B,保留其 N 位子网前缀。

=> V6_SUBNETN(VARBINARY B, INT8 N) -> VARBINARY(16) S

B 是 NULL 或长于 16 字节,或者 N 不在 0 到 128 之间(包含),则结果为 NULL。

S = [B]/N无类别域间路由 符号(CIDR 符号)表示。

下述语法屏蔽字母数字 IPv6 地址 A ,使得最左侧的 N 位形成子网地址,而剩余最右侧的位被清除。

=> V6_SUBNETN(VARCHAR A, INT8 N) -> V6_SUBNETN(V6_ATON(A), N) -> VARBINARY(16) S

示例

这个示例在使用 V6_ATON 将 VARCHAR 字符串转换为 VARBINARY 之后返回 VARBINARY:

=> SELECT V6_SUBNETN(V6_ATON('2001:db8::8:800:200c:417a'), 28);
                           v6_subnetn
---------------------------------------------------------------
  \001\015\260\000\000\000\000\000\000\000\000\000\000\000\000

另请参阅