历史版本。 PostgreSQL 8.0 已结束支持。 请参阅 当前版本手册.
9.11. 网络地址函数和操作符 #
表 9.31列出了可用于
cidr 和 inet 类型的操作符。操作符<<、<<=、>>和>>=测试子网包含关系。它们只考虑两个地址的网络部分(忽略主机部分),并判断一个网络是否与另一个网络相同,或是另一个网络的子网。
表 9.31. cidr and inet Operators
| Operator | 描述 | 示例 |
|---|---|---|
< | 小于 | inet '192.168.1.5' < inet '192.168.1.6' |
<= | 小于或等于 | inet '192.168.1.5' <= inet '192.168.1.5' |
= | 等于 | inet '192.168.1.5' = inet '192.168.1.5' |
>= | 大于或等于 | inet '192.168.1.5' >= inet '192.168.1.5' |
> | 大于 | inet '192.168.1.5' > inet '192.168.1.4' |
<> | 不等于 | inet '192.168.1.5' <> inet '192.168.1.4' |
<< | 是否严格位于左侧? | inet '192.168.1.5' << inet '192.168.1/24' |
<<= | 被包含于或等于 | inet '192.168.1/24' <<= inet '192.168.1/24' |
>> | 是否严格位于右侧? | inet '192.168.1/24' >> inet '192.168.1.5' |
>>= | 包含或等于 | inet '192.168.1/24' >>= inet '192.168.1/24' |
表 9.32列出了可用于 cidr 和 inet 类型的函数。abbrev、host 和 text 函数主要用于提供其他显示格式。可以用普通的类型转换语法把文本值转换为inet:inet(或expression)。colname::inet
表 9.32. cidr and inet Functions
| Function | Return Type | 描述 | 示例 | Result |
|---|---|---|---|---|
| inet | 网络的广播地址 | broadcast('192.168.1.5/24') | 192.168.1.255/24 |
| text | 以 text 形式抽取 IP 地址 | host('192.168.1.5/24') | 192.168.1.5 |
| integer | 抽取网络掩码长度 | masklen('192.168.1.5/24') | 24 |
| inet | 为inet值设置网络掩码长度 | set_masklen('192.168.1.5/24', 16) | 192.168.1.5/16 |
| inet | 构造网络的网络掩码 | netmask('192.168.1.5/24') | 255.255.255.0 |
| inet | 构造网络的主机掩码 | hostmask('192.168.23.20/30') | 0.0.0.3 |
| cidr | 抽取地址的网络部分 | network('192.168.1.5/24') | 192.168.1.0/24 |
| text | 以 text 形式抽取 IP 地址和网络掩码长度 | text(inet '192.168.1.5') | 192.168.1.5/32 |
| text | 以 text 形式的缩写显示格式 | abbrev(cidr '10.1.0.0/16') | 10.1/16 |
| integer | 抽取地址族;IPv4 为4,IPv6 为6 | family('::1') | 6 |
表 9.33列出了可用于 macaddr 类型的函数。函数 返回将最后 3 个字节置零的 MAC 地址。可以用余下的前缀确定制造商。源码分发中的trunc(macaddr)contrib/mac目录包含一些用于创建和维护这种关联表的工具。
表 9.33. macaddr Functions
| Function | Return Type | 描述 | 示例 | Result |
|---|---|---|---|---|
| macaddr | 把最后 3 个字节设置为零 | trunc(macaddr '12:34:56:78:90:ab') | 12:34:56:00:00:00 |
macaddr类型还支持用于字典序排序的标准关系操作符(>、<=等)。