メインコンテンツまでスキップ
バージョン: 26.x

IPV4_CIDR_TO_RANGE

ipv4_cidr_to_range

説明

IPv4アドレスとCIDRプレフィックス長に基づいて、ネットワークセグメントの最小および最大IPv4アドレスを計算し、2つのIPv4アドレスを含む構造体を返します。

構文

IPV4_CIDR_TO_RANGE(<ipv4_address>, <cidr_prefix>)

パラメータ

  • <ipv4_address>: IPv4型のアドレス
  • <cidr_prefix>: CIDRプレフィックス長(SMALLINT型、範囲0-32)

戻り値

戻り値の型: STRUCT<min: IPv4, max: IPv4>

戻り値の意味:

  • 2つのフィールドを含む構造体を返します:
    • min: ネットワークセグメントの最小IPv4アドレス
    • max: ネットワークセグメントの最大IPv4アドレス

使用上の注意

  • CIDRプレフィックス長は0-32の範囲内である必要があります
  • 計算はネットワークマスクに基づき、最小アドレスは全てのホストビットを0に設定し、最大アドレスは全てのホストビットを1に設定します
  • 定数パラメータとカラムパラメータの様々な組み合わせをサポートします

/24ネットワークセグメントのアドレス範囲を計算します。

SELECT ipv4_cidr_to_range(INET_ATON('192.168.1.1'), 24) as range;
+----------------------------------------+
| range |
+----------------------------------------+
| {"min": "192.168.1.0", "max": "192.168.1.255"} |
+----------------------------------------+

/16ネットワークセグメントのアドレス範囲を計算します。

SELECT ipv4_cidr_to_range(INET_ATON('10.0.0.1'), 16) as range;
+----------------------------------------+
| range |
+----------------------------------------+
| {"min": "10.0.0.0", "max": "10.255.255.255"} |
+----------------------------------------+

構造体の特定のフィールドにアクセスします。

SELECT 
ipv4_cidr_to_range(INET_ATON('172.16.1.1'), 24).min as min_ip,
ipv4_cidr_to_range(INET_ATON('172.16.1.1'), 24).max as max_ip;
+-------------+-------------+
| min_ip | max_ip |
+-------------+-------------+
| 172.16.1.0 | 172.16.1.255 |
+-------------+-------------+

CIDR プレフィックスが範囲外の場合、例外がスローされます。

SELECT ipv4_cidr_to_range(INET_ATON('192.168.1.1'), 33);
ERROR 1105 (HY000): errCode = 2, detailMessage = (...)[INVALID_ARGUMENT]Illegal cidr value '33'

Keywords

IPV4_CIDR_TO_RANGE