このトピックでは、PolarDB for PostgreSQL (Compatible with Oracle) でサポートされているネットワークアドレス関数と演算子について説明します。
IPネットワークアドレスタイプ、cidrおよびinetは、通常の比較演算子ならびに特殊な演算子および関数をサポートする。
任意のcidr値は、暗黙的にinetにキャストできます。したがって、inetで動作するものとして以下に示す演算子と関数は、cidr値でも動作します。 (inetとcidrに別々の関数があるのは、2つのケースで動作が異なるはずだからです。) また、inet値をcidrにキャストすることも許可されています。 これが行われると、ネットマスクの右側の任意のビットは、有効なcidr値を生成するために静かにゼロにされる。
IPアドレス演算子
サブネットは厳密にサブネットに含まれていますか? この演算子と次の4つは、サブネットの包含をテストします。 彼らは、2つのアドレスのネットワーク部分のみを考慮し (ネットマスクの右側の任意のビットを無視して) 、一方のネットワークが他方のネットワークと同一であるか、またはサブネットであるかを決定する。
|
サブネットはサブネットに含まれていますか?
|
サブネットは厳密にサブネットを含みますか?
|
サブネットにはサブネットが含まれていますか?
|
どちらかのサブネットがもう一方を含むか等しいか?
|
ビット単位ではなく計算します。
|
ビット単位でANDを計算します。
|
ビットワイズORを計算します。
|
アドレスにオフセットを追加します。
|
アドレスにオフセットを追加します。
|
アドレスからオフセットを減算します。
|
2つのアドレスの差を計算します。
|
IPアドレス関数
省略表示形式をテキストとして作成します。 (結果は、
|
省略表示形式をテキストとして作成します。 (略語は、ネットマスクの右側にすべてゼロのオクテットをドロップすることからなる。)
|
アドレスのネットワークのブロードキャストアドレスを計算します。
|
IPv4の場合は
|
ネットマスクを無視して、IPアドレスをテキストとして返します。
|
アドレスのネットワークのホストマスクを計算します。
|
指定されたネットワークの両方を含む最小のネットワークを計算します。
|
アドレスが同じIPファミリに属しているかどうかをテストします。
|
ビット単位のネットマスク長を返します。
|
アドレスのネットワークのネットワークマスクを計算します。
|
アドレスのネットワーク部分を返し、ネットマスクの右側にあるものをすべてゼロにします。 (これは、値を
|
|
|
省略されていないIPアドレスとネットマスクの長さをテキストとして返します。 (これは、
|
abbrev、host、およびtext機能は、主にIPアドレスの代替表示形式を提供することを目的としています。
MACアドレスタイプ、macaddrおよびmacaddr8は、通常の比較演算子ならびに特殊な関数をサポートする。 さらに、これらは、上記のIPアドレスについて示したように、ビット単位の論理演算子〜、& および | (NOT、andおよびOR) をサポートする。
MACアドレス関数
アドレスの最後の3バイトをゼロに設定します。 残りのプレフィックスは、特定の製造元に関連付けることができます (PostgreSQLに含まれていないデータを使用) 。
|
アドレスの最後の5バイトをゼロに設定します。 残りのプレフィックスは、特定の製造元に関連付けることができます (PostgreSQLに含まれていないデータを使用) 。
|
IPv6アドレスに含めるために、アドレスの7番目のビットを1に設定し、修正EUI-64と呼ばれるものを作成します。
|