他のバージョンの文書9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

5.8. ネットワークアドレスデータ型

PostgreSQL では IPアドレス と MAC アドレスを格納するデータ型が提供されています。Table 5-18 を参照してください。これらのデータ型は入力値の検エラーチェックと専用の演算子と関数をいくつか提供しているので、テキストデータ型の代わりにこちらを使うことをお勧めします。

Table 5-18. ネットワークアドレスデータ型

名前格納サイズ説明範囲
cidr12 バイトIP ネットワーク有効な IPv4 ネットワーク
inet12 バイトIP ホストとネットワーク有効な IPv4 ホストまたはネットワーク
macaddr6 バイトMAC アドレス通常のフォーマット

IPv6 はまだサポートされていません。

5.8.1. inet

inet は IP ホストアドレスとオプションでそのホストアドレスが所属するサブネット本体を 1 つのフィールドに保持します。サブネット本体はアドレスのネットワーク部(netmask)のビット数で表されます。もしネットマスクが 32 の場合、それは単一ホストのを意味し、サブネットを示しません。ネットワークのみを使用したい場合は inet ではなく cidr を利用してください。

このデータ型に対する入力フォーマットは x.x.x.x/y で、x.x.x.x が IP アドレスで、y がネットマスクのビット数です。もし /y の部分を省略するとネットマスクは 32 となり、その値は単一ホストを表現します。ネットマスクが 32 の場合表示は /y の部分を抑制します。

5.8.2. cidr

cidr データ型は IP ネットワークの詳細を保持します。入出力フォーマットはクラス分けのないインターネットドメインルーティング協定に従います。クラス分けのないネットワークアドレスを指定する時のフォーマットは x.x.x.x/y で、x.x.x.x がネットワークアドレス、y がネットマスクのビット数です。もし y が省略された場合には、入力時に書き込まれたオクテットすべてが含まれるように大きさが確保されること以外は、従来のクラス付きアドレス番号指定システムに従って計算されます。

Table 5-19 に例がいくつかあります。

Table 5-19. cidr データ型入力例

CIDR 入力CIDR 表示省略形(CIDR)
192.168.100.128/25192.168.100.128/25192.168.100.128/25
192.168/24192.168.0.0/24192.168.0/24
192.168/25192.168.0.0/25192.168.0.0/25
192.168.1192.168.1.0/24192.168.1/24
192.168192.168.0.0/24192.168.0/24
128.1128.1.0.0/16128.1/16
128128.0.0.0/16128.0/16
128.1.2128.1.2.0/24128.1.2/24
10.1.210.1.2.0/2410.1.2/24
10.110.1.0.0/1610.1/16
1010.0.0.0/810/8

5.8.3. inetcidr データ型の違い

inet データ型と cidr データ型との基本的な相違は inet はネットマスクの右側に 0 でないビット値を受け付けますが、cidr では受け付けません。

Tip: もし inet もしくは cidr の値の出力フォーマットが気に入らないのであれば、関数 host()、text()、および abbrev() を試してください。

5.8.4. macaddr

macaddr データ型は MAC アドレスを保持します。 と言うことは Ethernet カードのハードウェアアドレスです(MAC アドレスは他の目的でもつかわれますが)。 以下を含むさまざまな形式の入力が受け入れられます。

'08002b:010203'
'08002b-010203'
'0800.2b01.0203'
'08-00-2b-01-02-03'
'08:00:2b:01:02:03'

以下はすべて同一のアドレスを指定します。a から f までの桁は大文字小文字どちらでも構いません。出力は常に例示した最後の形式となります。

PostgreSQL のソース配付物の contrib/mac ディレクトリには MAC アドレスとハードウェア製造メーカー名の対応に使用できるツールが含まれています。