ipv4_compare()

Beralih layanan menggunakan daftar drop-down Versi . Pelajari selengkapnya tentang navigasi.
Berlaku untuk: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

Membandingkan dua string IPv4. Dua string IPv4 diurai dan dibandingkan saat menghitung masker awalan IP gabungan yang dihitung dari awalan argumen, dan argumen opsional PrefixMask .

Syntax

ipv4_compare( Expr1,Expr2[ ,PrefixMask])

Parameter-parameternya

Nama Tipe Diperlukan Description
Expr1, Expr2 string ✔️ Ekspresi string yang mewakili alamat IPv4. String IPv4 dapat ditutupi menggunakan notasi awalan IP.
PrefixMask 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.

Pengembalian Barang

  • 0: Jika representasi panjang argumen string IPv4 pertama sama dengan argumen string IPv4 kedua
  • 1: Jika representasi panjang argumen string IPv4 pertama lebih besar dari argumen string IPv4 kedua
  • -1: Jika representasi panjang argumen string IPv4 pertama kurang 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 awalan 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)

Hasil

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 awalan IP yang ditentukan di dalam string IPv4 dan sebagai argumen tambahan dari ipv4_compare() fungsi

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)

Hasil

ip1_string ip2_string prefix 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