9.10. ネットワークアドレス型関数

表9-31に、inet型およびcidr型で使用可能な演算子を示します。 演算子 <<<<=>>、および>>=はサブネットに含まれているかどうかを調べるものです。 ネットワークアドレスのホスト部分を無視し、ネットワークの部分のみを考慮して2つのネットワークアドレスが等しいか、もしくは一方のネットワークが他方のサブネットになっているかを特定します。

表 9-31. 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'

表9-32に、inet型およびcidr型で使用可能な関数を示します。 関数host()text()、およびabbrev()は主として、代替の整形表示を提供する目的のものです。 通常のキャスト用構文、inet(expression)または colname::inetを使用しテキスト値をinetにキャストすることができます。

表 9-32. cidrおよびinet型関数

関数返り値説明結果
broadcast(inet)inetネットワークブロードキャストアドレスbroadcast('192.168.1.5/24')192.168.1.255/24
host(inet)textIPアドレスをテキストで抽出host('192.168.1.5/24')192.168.1.5
masklen(inet)integerネットマスク長を抽出masklen('192.168.1.5/24')24
set_masklen(inet, integer)inetinet値に対するネットマスク長を設定set_masklen('192.168.1.5/24', 16)192.168.1.5/16
netmask(inet)inetネットワークにネットマスクを作成netmask('192.168.1.5/24')255.255.255.0
hostmask(inet)inetネットワークにホストマスクを作成hostmask('192.168.23.20/30')0.0.0.3
network(inet)cidrネットワークアドレスからネットワーク部を抽出network('192.168.1.5/24')192.168.1.0/24
text(inet)textIPアドレスとネットマスク長をテキストで抽出text(inet '192.168.1.5')192.168.1.5/32
abbrev(inet)text省略形表示をテキストで抽出abbrev(cidr '10.1.0.0/16')10.1/16

表9-33に、macaddr型で使用可能な関数を示します。 関数trunc(macaddr)は終りの3バイトがゼロに設定されたMACアドレスを返します。 これは、残った接頭部を製造者に対応させることに使えます。 ソース配付物のcontrib/macディレクトリに対応表を作成、維持するためのいくつかのユーティリティがあります。

表 9-33. macaddr関数

関数返り値説明結果
trunc(macaddr)macaddr終りの3バイトをゼロに設定trunc(macaddr '12:34:56:78:90:ab')12:34:56:00:00:00

macaddr型は(><= 等の) 辞書編集順に並べる標準関係演算子もサポートします。