Bagikan melalui


ipv4_compare()

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

Sintaks

ipv4_compare(Expr1,Expr2[ ,PrefixMask])

Parameter

Nama Jenis Diperlukan Deskripsi
Expr1, Expr2 string ✔️ Ekspresi string yang mewakili alamat IPv4. Nilai IPv4 dapat di-mask menggunakan notasi prefiks IP.
PrefixMask int Bilangan bulat dari 0 hingga 32 mewakili jumlah bit paling signifikan yang diperhitungkan.

Notasi prefiks 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 terkemuka 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:ff00. Netmask ini memiliki 120 1 bit terkemuka, atau panjang awalan 120.

Mengembalikan

  • 0: Jika representasi panjang dari argumen string IPv4 setara dengan argumen string iPv4 kedua
  • 1: Jika representasi panjang dari argumen string IPv4 lebih besar dari argumen string iPv4 kedua
  • -1: Jika representasi panjang dari argumen string IPv4 lebih sedikit dari argumen string iPv4 kedua
  • null: Jika konversi untuk salah satu dari dua string iPv4 tidak berhasil.

Contoh: Kasus kesetaraan perbandingan IPv4

Membandingkan IP menggunakan 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_compare(ip1_string, ip2_string)

Output

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

Bandingkan IP menggunakan notasi prefiks IP yang ditentukan di dalam string IPv4 dan sebagai argumen tambahan dari fungsi ipv4_compare()

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_compare(ip1_string, ip2_string, prefix)

Output

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