9.12. 网络地址函数和操作符 #
IP 网络地址类型,cidr 和 inet,支持表 9.1 所示的常用比较操作符,以及表 9.38 和表 9.39 所示的专用操作符和函数。
任何 cidr 值都可以隐式地转换到 inet;因此,下面在 inet 上操作的操作符和函数也可以在 cidr 值上工作。(如果 inet 和 cidr 各有单独的函数,是因为这两种情况下的行为应当不同。)此外,也允许将 inet 值转换为 cidr。当这样做的时候,子网掩码右边的任何位都被静默地置零,以创建一个有效的 cidr 值。
表 9.38. IP 地址操作符
操作符 描述 示例 |
|---|
子网是否严格包含在另一个子网中?这个操作符和后续四个操作符测试子网包含关系。它们只考虑两个地址的网络部分(忽略网络掩码右侧的所有位),并判断一个网络是否与另一个网络相同,或是另一个网络的子网。
|
子网是否被包含于或等于子网?
|
子网是否严格包含子网?
|
子网是否包含或等于子网?
|
其中一个子网包含或等于另一个子网?
|
计算按位非。
|
计算按位与。
|
计算按位或。
|
向地址添加偏移量。
|
向地址添加偏移量。
|
从地址中减去偏移量。
|
计算两个地址的差值。
|
表 9.39. IP 地址的函数
函数 描述 示例 |
|---|
|
创建文本形式的缩写显示格式。(结果与
|
创建文本形式的缩写显示格式。(缩写形式会省略网络掩码右侧值为零的字节;更多示例见表 8.22。)
|
|
为地址的网络计算广播地址。
|
|
返回地址的地址族:
|
|
返回 IP 地址文本,忽略子网掩码。
|
|
为地址的网络计算主机掩码。
|
计算包含两个给定网络的最小网络。
|
测试地址是否属于同一 IP 族。
|
|
返回子网掩码长度,以位为单位。
|
|
为地址的网络计算网络掩码。
|
|
返回地址的网络部分,将子网掩码右边的部分归零。(这相当于将值转换为
|
设置
|
设置
|
|
以文本形式返回未缩写的 IP 地址和子网掩码长度。(这与显式转换为
|
提示
abbrev、host 和 text 函数主要用于为 IP 地址提供另一种显示格式。
MAC 地址类型,macaddr 和 macaddr8,支持表 9.1 中所示的常用比较操作符以及表 9.40 中所示的特殊函数。此外,它们支持按位逻辑操作符~、& 和|(非、与和或),就像上面对 IP 地址所示的那样。
表 9.40. MAC 地址函数