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

MaxCompute:NET_IP_NET_MASK

最終更新日:Oct 27, 2025

NET_IP_NET_MASK 関数は、指定されたプレフィックス長に基づいて IPv4 または IPv6 ネットワークマスクアドレスを生成します。

構文

BINARY NET_IP_NET_MASK(BIGINT <num_output_bytes>, BIGINT <prefix_length>)

パラメーター

  • num_output_bytes: 必須。 ネットワークマスクのバイト数を指定する BIGINT 型の値。 有効値は、IPv4 の場合は 4、IPv6 の場合は 16 です。

  • prefix_length: 必須。 ネットワークマスクのプレフィックス長を指定する BIGINT 型の値。 プレフィックス長は、マスク内で 1 に設定されているビット数です。 値は [0, num_output_bytes × 8] の範囲内である必要があります。

戻り値

BINARY 型の IP アドレスを返します。 この関数を NET_IP_TO_STRING 関数と併用して、アドレスを読み取り可能なフォーマットに変換できます。 次のルールが適用されます。

  • num_output_bytes が IPv4 の場合は 4、IPv6 の場合は 16 でない場合、関数はエラーをレポートします。

    説明

    odps.sql.udf.strict.mode パラメーターが false に設定されている場合、関数は NULL を返します。

  • prefix_length が負の値であるか、8 × num_output_bytes より大きい場合、関数はエラーをレポートします。

    説明

    odps.sql.udf.strict.mode パラメーターが false に設定されている場合、関数は NULL を返します。

  • num_output_bytes または prefix_length が NULL の場合、関数は NULL を返します。

例 1: 基本的な例

-- =FF=FF=FF=00 を返します
SELECT NET_IP_NET_MASK(4, 24);

-- =FF=FF=F0=00 を返します
SELECT NET_IP_NET_MASK(4, 20);

-- =FF=FF=FF=FF を返します
SELECT NET_IP_NET_MASK(4, 32);

-- =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00 を返します
SELECT NET_IP_NET_MASK(16, 0);

-- =80=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00 を返します
SELECT NET_IP_NET_MASK(16, 1);

 -- =FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF を返します
SELECT NET_IP_NET_MASK(16, 128);

-- NULL を返します
SELECT NET_IP_NET_MASK(NULL, 128);

-- NULL を返します
SELECT NET_IP_NET_MASK(4, NULL);

例 2: NET_IP_TO_STRING 関数との併用

この関数を NET_IP_TO_STRING 関数と併用して、BINARY 型の IP アドレスを読み取り可能なフォーマットに変換できます。

-- 255.255.255.0 を返します
SELECT NET_IP_TO_STRING(NET_IP_NET_MASK(4, 24));

-- ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff を返します
SELECT NET_IP_TO_STRING(NET_IP_NET_MASK(16, 128));

-- ffff:ffff:ffff:ffff:: を返します
SELECT NET_IP_TO_STRING(NET_IP_NET_MASK(16, 64));

関連関数

NET_IP_NET_MASK はネットワーク関数です。 ネットワーク関数の詳細については、「ネットワーク関数」をご参照ください。