表 9.36に、inet
型およびcidr
型で使用可能な演算子を示します。
演算子 <<
、<<=
、>>
、>>=
および&&
はサブネットの包含関係を調べるものです。
これらは2つのアドレスのネットワークの部分のみを考慮(ホスト部分を無視)して2つのネットワークアドレスが等しいか、もしくは一方のネットワークが他方のサブネットになっているかを特定します。
表9.36 cidr
とinet
演算子
演算子 | 説明 | 例 |
---|---|---|
< | 未満 | 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' |
&& | 内包するか内包されるか | inet '192.168.1/24' && inet '192.168.1.80/28' |
~ | ビット否定 | ~ inet '192.168.1.6' |
& | ビット積 | inet '192.168.1.6' & inet '0.0.0.255' |
| | ビット和 | inet '192.168.1.6' | inet '0.0.0.255' |
+ | 加算 | inet '192.168.1.6' + 25 |
- | 減算 | inet '192.168.1.43' - 36 |
- | 減算 | inet '192.168.1.43' - inet '192.168.1.19' |
表 9.37に、inet
型およびcidr
型で使用可能な関数を示します。
関数abbrev
、host
、およびtext
、は主として、代替の整形表示を提供する目的のものです。
表9.37 cidr
およびinet
型関数
cidr
値はすべて、暗黙的または明示的にinet
型にキャスト可能です。
したがって、上で示したinet
に対する操作を行う関数はcidr
値でも動作します。
(inet
とcidr
で別々に関数が存在するものがありますが、それは、この2つで動作に違いがあるためです。)
また、inet
値からcidr
へのキャストも許されます。これが行われると、ネットマスクの右側のビットは、cidr
として有効な値とするために0となります。
さらに、通常のキャスト構文、例えば、inet(
やexpression
)
を使用して、テキスト値をcolname
::cidrinet
やcidr
にキャストすることもできます。
表 9.38に、macaddr
型で使用可能な関数を示します。
関数
は終わりの3バイトがゼロに設定されたMACアドレスを返します。
これは、残った接頭部を製造者に対応させることに使えます。
trunc(
macaddr
)
表9.38 macaddr
型関数
macaddr
型は(>
、<=
等の)辞書編集順に並べる標準関係演算子とNOT、AND、ORのビット演算子(~
、&
、|
)もサポートしています。
macaddr8
型で利用できる関数を表 9.39に示します。
関数
は終わりの5バイトをゼロに設定したMACアドレスを返します。
これは、残りの先頭部分を製造者と紐付けるのに使用できます。
trunc(
macaddr8
)
表9.39 macaddr8
関数
macaddr8
型は、順序付けのための標準的関係演算(>
、<=
など)およびNOT、AND、ORに関するビットごとの算術演算(~
、&
、|
)もサポートします。