すべてのプロダクト
Search
ドキュメントセンター

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

最終更新日:May 31, 2024

このトピックでは、PolarDB for PostgreSQL (Compatible with Oracle) でサポートされているネットワークアドレス関数と演算子について説明します。

IPネットワークアドレスタイプ、cidrおよびinetは、通常の比較演算子ならびに特殊な演算子および関数をサポートする。

任意のcidr値は、暗黙的にinetにキャストできます。したがって、inetで動作するものとして以下に示す演算子と関数は、cidr値でも動作します。 (inetcidrに別々の関数があるのは、2つのケースで動作が異なるはずだからです。) また、inet値をcidrにキャストすることも許可されています。 これが行われると、ネットマスクの右側の任意のビットは、有効なcidr値を生成するために静かにゼロにされる。

IPアドレス演算子

inet << inetブール

サブネットは厳密にサブネットに含まれていますか? この演算子と次の4つは、サブネットの包含をテストします。 彼らは、2つのアドレスのネットワーク部分のみを考慮し (ネットマスクの右側の任意のビットを無視して) 、一方のネットワークが他方のネットワークと同一であるか、またはサブネットであるかを決定する。

inet '192.168.1.5 ' << inet '192.168.1/24't

inet '192.168.0.5 ' << inet '192.168.1/24'f

inet '192.168.1/24' << inet '192.168.1/24'f

inet <<= inetブール

サブネットはサブネットに含まれていますか?

inet '192.168.1/24 '<<= inet '192.168.1/24't

inet >> inetブール

サブネットは厳密にサブネットを含みますか?

inet '192.168.1/24 ' >> inet '192.168.1.5't

inet >>= inetブール

サブネットにはサブネットが含まれていますか?

inet '192.168.1/24 '>>= inet '192.168.1/24't

inet & inetブール

どちらかのサブネットがもう一方を含むか等しいか?

inet '192.168.1/24 ' && inet '192.168.1.80/28't

inet '192.168.1/24 ' && inet '192.168.2.0/28'f

~ inetinet

ビット単位ではなく計算します。

~ inet '192.168.1.6 '63.87.254.249

inet & inetinet

ビット単位でANDを計算します。

inet '192.168.1.6 ' & inet '0.0.0.255'0.0.0.6

inet | inetinet

ビットワイズORを計算します。

inet '192.168.1.6 '| inet '0.0.0.255'192.168.1.255

inet + bigintinet

アドレスにオフセットを追加します。

inet '192.168.1.6 '+ 25 192.168.1.31

bigint + inetinet

アドレスにオフセットを追加します。

200 + inet '::ffff:fff0:1'::ffff: 255.240.201

inet-bigintinet

アドレスからオフセットを減算します。

inet '192.168.1.43 ' - 36 192.168.1.7

inet-inetbigint

2つのアドレスの差を計算します。

inet '192.168.1.43 ' - inet '192.168.1.19'24

inet '::1' - inet '::ffff:1'-4294901760

IPアドレス関数

abbrev (inet) → text

省略表示形式をテキストとして作成します。 (結果は、inet出力関数が生成するものと同じであり、明示的なテキストへのキャストの結果と比較してのみ「省略」されます。これは、歴史的な理由からネットマスク部分を抑制することはありません。)

abbrev(inet '10.1.0.0/32 ')10.1.0.0

abbrev (cidr) → text

省略表示形式をテキストとして作成します。 (略語は、ネットマスクの右側にすべてゼロのオクテットをドロップすることからなる。)

abbrev(cidr '10.1.0.0/16 ')10.1/16

broadcast (inet) → inet

アドレスのネットワークのブロードキャストアドレスを計算します。

放送 (inet '192.168.1.5/24 ')192.168.1.255/24

family (inet) → integer

IPv4の場合は4、IPv6の場合は6アドレスのファミリを返します。

family(inet '::1') 6

host (inet) → text

ネットマスクを無視して、IPアドレスをテキストとして返します。

ホスト (inet '192.168.1.0/24 ')192.168.1.0

hostmask (inet) → inet

アドレスのネットワークのホストマスクを計算します。

ホストマスク (inet '192.168.23.20/30 ')0.0.0.3

inet_merge (inet, inet) → cidr

指定されたネットワークの両方を含む最小のネットワークを計算します。

inet_merge(inet '192.168.1.5/24 ', inet '192.168.2.5/24')192.168.0.0/22

inet_same_family (inet, inet) → boolean

アドレスが同じIPファミリに属しているかどうかをテストします。

inet_same_family(inet '192.168.1.5/24 ', inet'::1 ')f

masklen (inet) → integer

ビット単位のネットマスク長を返します。

masklen(inet '192.168.1.5/24 ') 24

ネットマスク (inet) → inet

アドレスのネットワークのネットワークマスクを計算します。

ネットマスク (inet '192.168.1.5/24 ') 255.255.255.0

network (inet) → cidr

アドレスのネットワーク部分を返し、ネットマスクの右側にあるものをすべてゼロにします。 (これは、値をcidrにキャストすることと同じです。)

ネットワーク (inet '192.168.1.5/24 ')192.168.1.0/24

set_masklen (inet, integer) → inet

inet値のネットマスク長を設定します。 アドレス部分は変化しない。

set_masklen(inet '192.168.1.5/24 ', 16)192.168.1.5/16

set_masklen (cidr, integer) → cidr

cidr値のネットマスク長を設定します。 新しいネットマスクの右側のアドレスビットはゼロに設定される。

set_masklen(cidr '192.168.1.0/24 ', 16)192.168.0.0/16

text (inet) → text

省略されていないIPアドレスとネットマスクの長さをテキストとして返します。 (これは、テキストへの明示的なキャストと同じ結果になります。)

テキスト (inet '192.168.1.5 ')192.168.1.5/32

説明

abbrevhost、およびtext機能は、主にIPアドレスの代替表示形式を提供することを目的としています。

MACアドレスタイプ、macaddrおよびmacaddr8は、通常の比較演算子ならびに特殊な関数をサポートする。 さらに、これらは、上記のIPアドレスについて示したように、ビット単位の論理演算子& および | (NOT、andおよびOR) をサポートする。

MACアドレス関数

trunc (macaddr) → macaddr

アドレスの最後の3バイトをゼロに設定します。 残りのプレフィックスは、特定の製造元に関連付けることができます (PostgreSQLに含まれていないデータを使用) 。

trunc(macaddr '12:34:56:78:90:ab')12:34:56:00:00:00

trunc (macaddr8) → macaddr8

アドレスの最後の5バイトをゼロに設定します。 残りのプレフィックスは、特定の製造元に関連付けることができます (PostgreSQLに含まれていないデータを使用) 。

trunc(macaddr8 '12:34:56:78:90:ab:cd:ef')12:34:56:00:00:00:00:00

macaddr8_set7bit (macaddr8) → macaddr8

IPv6アドレスに含めるために、アドレスの7番目のビットを1に設定し、修正EUI-64と呼ばれるものを作成します。

macaddr8_set7bit(macaddr8 '00:34:56:ab:cd:ef')02:34:56:ff:fe:ab:cd:ef