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

PostgreSQL 8.0.0 文書
前のページ | 巻戻し | 第 9章関数と演算子 | 早送り | 次のページ

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

表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'`
``family`(`inet`)` | `integer` | アドレスの系列を抽出します。IPv4の場合は`4`、IPv6の場合は`6`です。 | `family('::1')` | `6`

表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`)` | `text` | IPアドレスをテキストで抽出 | `host('192.168.1.5/24')` | `192.168.1.5`
``masklen`(`inet`)` | `integer` | ネットマスク長を抽出 | `masklen('192.168.1.5/24')` | `24`
``set_masklen`(`inet`, `integer`)` | `inet` | `inet`値に対するネットマスク長を設定 | `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`)` | `text` | IPアドレスとネットマスク長をテキストで抽出 | `text(inet '192.168.1.5')` | `192.168.1.5/32`
``abbrev`(`inet`)` | `text` | 省略形表示をテキストで抽出 | `abbrev(cidr '10.1.0.0/16')` | `10.1/16`
``family`(`inet`)` | `integer` | アドレス系列を抽出。IPv4の場合は`4`、IPv6の場合は`6` | `family('::1')` | `6`

表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`型は(`>`、`<=` 等の) 辞書編集順に並べる標準関係演算子もサポートします。

前のページ | ホーム | 次のページ
幾何関数と演算子 | 上に戻る | シーケンス操作関数