Fungsi NET_IP_NET_MASK menghasilkan alamat masker jaringan IPv4 atau IPv6 berdasarkan panjang awalan yang ditentukan.
Sintaksis
BINARY NET_IP_NET_MASK(BIGINT <num_output_bytes>, BIGINT <prefix_length>)Parameter
num_output_bytes: Diperlukan. Nilai BIGINT yang menentukan jumlah byte dalam masker jaringan. Nilai valid adalah 4 untuk IPv4 dan 16 untuk IPv6.
prefix_length: Diperlukan. Nilai BIGINT yang menentukan panjang awalan dari masker jaringan. Panjang awalan adalah jumlah bit yang disetel ke 1 dalam masker. Nilai harus berada dalam rentang
[0, num_output_bytes × 8].
Nilai pengembalian
Mengembalikan alamat IP bertipe BINARY. Anda dapat menggunakan fungsi ini bersama dengan fungsi NET_IP_TO_STRING untuk mengonversi alamat menjadi format yang dapat dibaca. Aturan berikut berlaku:
Jika num_output_bytes bukan 4 untuk IPv4 atau 16 untuk IPv6, fungsi melaporkan kesalahan.
CatatanJika parameter
odps.sql.udf.strict.modediatur ke false, fungsi mengembalikan NULL.Jika prefix_length adalah nilai negatif atau lebih besar dari
8 × num_output_bytes, fungsi melaporkan kesalahan.CatatanJika parameter
odps.sql.udf.strict.modediatur ke false, fungsi mengembalikan NULL.Jika num_output_bytes atau prefix_length adalah NULL, fungsi mengembalikan NULL.
Contoh
Contoh 1: Contoh dasar
-- Mengembalikan =FF=FF=FF=00
SELECT NET_IP_NET_MASK(4, 24);
-- Mengembalikan =FF=FF=F0=00
SELECT NET_IP_NET_MASK(4, 20);
-- Mengembalikan =FF=FF=FF=FF
SELECT NET_IP_NET_MASK(4, 32);
-- Mengembalikan =00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00
SELECT NET_IP_NET_MASK(16, 0);
-- Mengembalikan =80=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00
SELECT NET_IP_NET_MASK(16, 1);
-- Mengembalikan =FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF
SELECT NET_IP_NET_MASK(16, 128);
-- Mengembalikan NULL
SELECT NET_IP_NET_MASK(NULL, 128);
-- Mengembalikan NULL
SELECT NET_IP_NET_MASK(4, NULL);Contoh 2: Penggunaan dengan fungsi NET_IP_TO_STRING
Anda dapat menggunakan fungsi ini bersama dengan fungsi NET_IP_TO_STRING untuk mengonversi alamat IP bertipe BINARY menjadi format yang dapat dibaca.
-- Mengembalikan 255.255.255.0
SELECT NET_IP_TO_STRING(NET_IP_NET_MASK(4, 24));
-- Mengembalikan ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
SELECT NET_IP_TO_STRING(NET_IP_NET_MASK(16, 128));
-- Mengembalikan ffff:ffff:ffff:ffff::
SELECT NET_IP_TO_STRING(NET_IP_NET_MASK(16, 64));Fungsi terkait
NET_IP_NET_MASK adalah fungsi jaringan. Untuk informasi lebih lanjut tentang fungsi jaringan, lihat Fungsi Jaringan.