ipv4_compare()

Porovná dva řetězce IPv4. Dva řetězce IPv4 se analyzují a porovnávají při zohlednění kombinované masky předpony IP vypočítané z předpon argumentů a volitelného PrefixMask argumentu.

Syntax

ipv4_compare(Výraz1,Výraz2[ ,PředponaMask])

Parametry

Název Typ Vyžadováno Popis
Výraz1, Výraz2 string ✔️ Řetězcový výraz představující adresu IPv4. Řetězce IPv4 je možné maskovat pomocí zápisu ip-prefix.
PředponaMask int Celé číslo od 0 do 32 představující počet nejvýznamnějších bitů, které se vezmou v úvahu.

Zápis předpony IP adresy

Zápis předpony IP (označovaný také jako zápis CIDR) je stručný způsob, jak znáznačovat IP adresu a přidruženou masku sítě. Formát je <base IP>/<prefix length>, kde délka předpony je počet počátečních 1 bitů v masky sítě. Délka předpony určuje rozsah IP adres, které patří do sítě.

Pro protokol IPv4 je délka předpony číslo mezi 0 a 32. Notace 192.168.2.0/24 tedy představuje IP adresu 192.168.2.0 s maskou sítě 255.255.255.0. Tato síťová maska má 24 úvodních 1 bitů nebo délku předpony 24.

U protokolu IPv6 je délka předpony číslo mezi 0 a 128. Notace fe80::85d:e82c:9446:7994/120 tedy představuje IP adresu fe80::85d:e82c:9446:7994 s maskou sítě ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff00. Tato síťová maska má 120 úvodních 1 bitů nebo délku předpony 120.

Návraty

  • 0: Pokud se dlouhé vyjádření prvního argumentu řetězce IPv4 rovná druhému argumentu řetězce IPv4.
  • 1: Pokud je dlouhé vyjádření prvního argumentu řetězce IPv4 větší než druhý argument řetězce IPv4.
  • -1: Pokud je dlouhé vyjádření prvního argumentu řetězce IPv4 menší než druhý argument řetězce IPv4.
  • null: Pokud převod jednoho ze dvou řetězců IPv4 nebyl úspěšný.

Příklady: Případy rovnosti porovnání IPv4

Porovnání IP adres pomocí notace předpon IP zadaného v řetězcích 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)

Výstup

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

Porovnejte IP adresy pomocí zápisu předpony IP zadaného v řetězcích IPv4 a jako další argument ipv4_compare() funkce.

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)

Výstup

ip1_string ip2_string Předponu result
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