ipv4_is_match()
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
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ředpona | 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ředpona | 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 |