Sdílet prostřednictvím


ipv4_is_match()

Odpovídá dvěma řetězcům IPv4. Dva řetězce IPv4 se analyzují a porovnávají při účtování kombinované masky předpon IP adres vypočítané z předpon argumentů a volitelného prefix argumentu.

Syntaxe

ipv4_is_match(ip1,ip2[ ,– předpona])

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Type Požadováno Popis
ip1, ip2 string ✔️ Výraz představující adresu IPv4. Řetězce IPv4 je možné maskovat pomocí zápisu předpon IP.
Předponu int Celé číslo od 0 do 32 představující počet nejvýznamnějších bitů, které jsou přihlédnuty.

Notace předpon IP adres

Notace předpon IP (označovaná také jako zápis CIDR) je stručný způsob reprezentace IP adresy a přidružené síťové masky. Formát je <base IP>/<prefix length>, kde délka předpony je počet úvodních 1 bitů v maskách sítě. Délka předpony určuje rozsah IP adres, které patří do sítě.

U protokolu IPv4 je délka předpony číslo od 0 do 32. Zápis 192.168.2.0/24 tedy představuje IP adresu 192.168.2.0 s maskou sítě 255.255.255.255.0. Tato maska sítě má 24 úvodních 1 bitů nebo délku předpony 24.

U protokolu IPv6 je délka předpony číslo od 0 do 128. Zápis fe80::85d:e82c:9446:7994/120 představuje IP adresu fe80::85d:e82c:9446:7994 s netmask ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff00. Tato maska sítě má 120 úvodních 1 bitů nebo délku předpony 120.

Návraty

  • true: Pokud se dlouhé vyjádření prvního řetězcového argumentu IPv4 rovná druhému řetězci IPv4 argumentu.
  • false:Jinak.
  • null: Pokud převod jednoho ze dvou řetězců IPv4 nebyl úspěšný.

Poznámka:

Při porovnávání s adresou IPv4, která není rozsahem, doporučujeme pro lepší výkon použít operátor rovná se (==).

Příklady

Jednoduchý příklad

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

Výstup

print_0
true

Rovnost porovnání IPv4 – zápis předpon IP zadaný uvnitř řetězců 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)

Výstup

ip1_string ip2_string result
192.168.1.0 192.168.1.0 true
192.168.1.1/24 192.168.1.255 true
192.168.1.1 192.168.1.255/24 true
192.168.1.1/30 192.168.1.255/24 true

Rovnost porovnání IPv4 – zápis předpony IP zadaný uvnitř řetězců IPv4 a další argument ipv4_is_match() 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_is_match(ip1_string, ip2_string, prefix)

Výstup

ip1_string ip2_string Předponu result
192.168.1.1 192.168.1.0 31 true
192.168.1.1/24 192.168.1.255 31 true
192.168.1.1 192.168.1.255 24 true