全部產品
Search
文件中心

MaxCompute:NET_IP_NET_MASK

更新時間:Aug 19, 2025

NET_IP_NET_MASK函數用於根據給定的網路遮罩長度,產生對應的IPv4或IPv6網路遮罩地址。

命令格式

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

參數說明

  • num_output_bytes:必填,BIGINT類型。指定產生的網路遮罩位元組數,取值為 4(對於IPv4)或16(對於IPv6)。

  • prefix_length:必填,BIGINT類型。指定網路遮罩的前置長度,即掩碼中設定為1的位元,取值範圍為[0,num_output_bytes*8]

傳回值說明

返回BINARY類型的IP地址,建議結合NET_IP_TO_STRING函數一起使用,以將其轉換為可讀格式。返回規則如下:

  • num_output_bytes不為4(對於IPv4)或16(對於IPv6),返回報錯。

    說明

    當參數odps.sql.udf.strict.mode為false時,返回NULL。

  • prefix_length為負數或大於8 * num_output_bytes,返回報錯。

    說明

    當參數odps.sql.udf.strict.mode為false時,返回NULL。

  • num_output_bytesprefix_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函數屬於網路函數,更多網路相關函數請參見網路函數