Bagikan melalui


ipv4_is_match()

Mencocokkan dua string IPv4. Dua string IPv4 diuraikan dan dibandingkan saat menghitung gabungan mask prefiks IP yang dihitung dari prefiks argumen, dan argumen prefix opsional.

Sintaks

ipv4_is_match(awalan ip1,ip2[ ,])

Pelajari selengkapnya tentang konvensi sintaksis.

Parameter

Nama Tipe Wajib Deskripsi
ip1, ip2 string ✔️ Ekspresi yang mewakili alamat IPv4. Nilai IPv4 dapat di-mask menggunakan notasi prefiks IP.
Awalan int Bilangan bulat dari 0 hingga 32 yang mewakili jumlah bit paling signifikan yang diperhitungkan.

Notasi awalan IP

Notasi awalan IP (juga dikenal sebagai notasi CIDR) adalah cara ringkas untuk mewakili alamat IP dan masker jaringan terkait. Formatnya adalah <base IP>/<prefix length>, di mana panjang awalan adalah jumlah 1 bit di depan dalam netmask. Panjang awalan menentukan rentang alamat IP milik jaringan.

Untuk IPv4, panjang awalan adalah angka antara 0 dan 32. Jadi notasi 192.168.2.0/24 mewakili alamat IP 192.168.2.0 dengan netmask 255.255.255.0. Netmask ini memiliki 24 bit terkemuka, atau panjang awalan 24.

Untuk IPv6, panjang awalan adalah angka antara 0 dan 128. Jadi notasi fe80::85d:e82c:9446:7994/120 mewakili alamat IP fe80::85d:e82c:9446:7994 dengan netmask ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff00. Netmask ini memiliki 120 1 bit terkemuka, atau panjang awalan 120.

Mengembalikan

  • true: Jika representasi panjang dari argumen string IPv4 setara dengan argumen string iPv4 kedua.
  • false: Sebaliknya.
  • null: Jika konversi untuk salah satu dari dua string iPv4 tidak berhasil.

Catatan

Saat mencocokkan dengan alamat IPv4 yang bukan suatu rentang, sebaiknya gunakan operator yang sama (==) demi meningkatkan performanya.

Contoh

Contoh sederhana

print ipv4_is_match('192.168.1.1/24', '192.168.1.255')

Hasil

print_0
benar

Kesetaraan perbandingan IPv4 - Notasi prefiks IP yang ditentukan di dalam string IPv4

datatable(ip1_string:string, ip2_string:string)
[
 '192.168.1.0',    '192.168.1.0',       // Equal IPs
 '192.168.1.1/24', '192.168.1.255',     // 24 bit IP-prefix is used for comparison
 '192.168.1.1',    '192.168.1.255/24',  // 24 bit IP-prefix is used for comparison
 '192.168.1.1/30', '192.168.1.255/24',  // 24 bit IP-prefix is used for comparison
]
| extend result = ipv4_is_match(ip1_string, ip2_string)

Hasil

ip1_string ip2_string hasil
192.168.1.0 192.168.1.0 benar
192.168.1.1/24 192.168.1.255 benar
192.168.1.1 192.168.1.255/24 benar
192.168.1.1/30 192.168.1.255/24 benar

Kesetaraan perbandingan IPv4 - Notasi prefiks IP yang ditentukan di dalam string IPv4 dan argumen tambahan dari fungsi ipv4_is_match()

datatable(ip1_string:string, ip2_string:string, prefix:long)
[
 '192.168.1.1',    '192.168.1.0',   31, // 31 bit IP-prefix is used for comparison
 '192.168.1.1/24', '192.168.1.255', 31, // 24 bit IP-prefix is used for comparison
 '192.168.1.1',    '192.168.1.255', 24, // 24 bit IP-prefix is used for comparison
]
| extend result = ipv4_is_match(ip1_string, ip2_string, prefix)

Hasil

ip1_string ip2_string awalan hasil
192.168.1.1 192.168.1.0 31 benar
192.168.1.1/24 192.168.1.255 31 benar
192.168.1.1 192.168.1.255 24 benar