VARCHAR に保存された IP アドレスはアルファベット順に並び、入力ミスを受け付け、アドレスがネットワーク内に入るかどうかに答えられません。vsql_network_address は、入力を検証し、正しく並べ替えられ、それに伴う包含とネットマスクの関数を備えた 4 つのカラム型を追加します。PostgreSQL の inet、cidr、macaddr、および macaddr8 型に従っています。
インストール
インストールスクリプト、Docker イメージ、またはリリース tarball で VillageSQL をインストールした場合、vsql_network_address.veb はすでにサーバーの lib/veb/ ディレクトリにあります。1 つのステートメントでサーバーにインストールします。
インストールされたことを確認します。
自分でビルドするには、リポジトリのビルド手順に従ってください。
追加される機能
行はアルファベット順ではなく、アドレス順で返ります。テキスト順では 9.0.0.1 は 10.8.0.7 の後に来ますが、アドレス順ではその前に来ます。
どのホストがネットワーク上にあるかを尋ねます。
ネットワークとそのブロードキャストアドレスを導出します。
inet_contained_by は真の包含を判定するため、ネットワークと同じネットマスクを持つアドレスは、そのネットワークに包含されません。192.168.1.0/24 の中の 192.168.1.5/32 は 1 を返しますが、同じネットワークの中の 192.168.1.5/24 は 0 を返します。上の例のように、保存された行がネットワーク自身のマスクを持つ場合は inet_contained_by_or_equals を使用してください。
関連項目