無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

9.12. ネットワークアドレス関数と演算子

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

表 9-33. 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.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-34 に、 inet 型および cidr 型で使用可能な関数を示します。 関数 abbrev host() 、および text() 、は主として、代替の整形表示を提供する目的のものです。

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

関数 戻り値 説明 結果
abbrev( inet ) text 表示用テキスト省略形 abbrev(inet '10.1.0.0/16') 10.1.0.0/16
abbrev( cidr ) text 表示用テキスト省略形 abbrev(cidr '10.1.0.0/16') 10.1/16
broadcast( inet ) inet ネットワークブロードキャストアドレス broadcast('192.168.1.5/24') 192.168.1.255/24
family( inet ) int アドレスファミリの取り出し。IPv4では 4 、IPv6では 6 family('::1') 6
host( inet ) text IPアドレスをテキストで抽出 host('192.168.1.5/24') 192.168.1.5
hostmask( inet ) inet ネットワーク用のホストマスクの構築 hostmask('192.168.23.20/30') 0.0.0.3
masklen( inet ) int ネットマスク長の抽出 masklen('192.168.1.5/24') 24
netmask( inet ) inet ネットワーク用ネットマスクの構築 netmask('192.168.1.5/24') 255.255.255.0
network( inet ) cidr ネットワークアドレスからネットワーク部を抽出 network('192.168.1.5/24') 192.168.1.0/24
set_masklen( inet , int ) inet inet 値のネットマスク長を設定 set_masklen('192.168.1.5/24', 16) 192.168.1.5/16
set_masklen( cidr , int ) cidr cidr 値のネットマスク長を設定 set_masklen('192.168.1.0/24'::cidr, 16) 192.168.0.0/16
text( inet ) text IPアドレスとネットマスク長をテキストで抽出 text(inet '192.168.1.5') 192.168.1.5/32

cidr 値はすべて、暗黙的または明示的に inet 型にキャスト可能です。 したがって、上で示した inet に対する操作を行う関数は cidr 値でも動作します。( inet cidr で別々に関数が存在しますが、それは、この2つで動作に違いがあるためです。)また、 inet 値から cidr へのキャストも許されます。これが行われると、ネットマスクの右側のビットは、 cidr として有効な値とするために0となります。さらに、通常のキャスト構文、例えば、 inet( expression ) colname ::cidr を使用して、テキスト値を inet cidr にキャストすることもできます。

表9-35 に、 macaddr 型で使用可能な関数を示します。関数 trunc( macaddr ) は終わりの3バイトがゼロに設定されたMACアドレスを返します。これは、残った接頭部を製造者に対応させることに使えます。

表 9-35. macaddr 型関数

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

macaddr 型は( > <= 等の)辞書編集順に並べる標準関係演算子とNOT、AND、ORのビット演算子( ~ & | )もサポートしています。


powered by SEO.CUG.NET