Udostępnij za pośrednictwem


ipv4_is_match()

Dotyczy: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Pasuje do dwóch ciągów IPv4. Dwa ciągi IPv4 są analizowane i porównywane podczas uwzględniania połączonej maski prefiksów IP obliczonej z prefiksów argumentów i opcjonalny prefix argument.

Składnia

ipv4_is_match(prefiks ip1,ip2[ ,])

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type Wymagania opis
ip1, ip2 string ✔️ Wyrażenie reprezentujące adres IPv4. Ciągi IPv4 można maskować przy użyciu notacji prefiksów IP.
przedrostek int Liczba całkowita z zakresu od 0 do 32 reprezentująca liczbę najbardziej znaczących bitów, które są brane pod uwagę.

Notacja prefiksu IP

Notacja prefiksów IP (znana również jako notacja CIDR) to zwięzły sposób reprezentowania adresu IP i skojarzonej maski sieciowej. Format to <base IP>/<prefix length>, gdzie długość prefiksu to liczba wiodących 1 bitów maski sieci. Długość prefiksu określa zakres adresów IP należących do sieci.

W przypadku protokołu IPv4 długość prefiksu jest liczbą z zakresu od 0 do 32. Notacja 192.168.2.0/24 reprezentuje adres IP 192.168.2.0 z maską sieciową 255.255.255.0. Ta maska sieci ma 24 wiodące 1 bity lub długość prefiksu 24.

W przypadku protokołu IPv6 długość prefiksu jest liczbą z zakresu od 0 do 128. Notacja fe80::85d:e82c:9446:7994/120 reprezentuje adres IP fe80::85d:e82c:9446:7994 z maską netmask ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff00. Ta maska sieci ma 120 wiodących 1 bitów lub długość prefiksu 120.

Zwraca

  • true: Jeśli długa reprezentacja pierwszego argumentu ciągu IPv4 jest równa drugiemu argumentowi ciągu IPv4.
  • false:Inaczej.
  • null: Jeśli konwersja jednego z dwóch ciągów IPv4 nie powiodła się.

Uwaga

W przypadku dopasowania do adresu IPv4, który nie jest zakresem, zalecamy użycie operatora równości (==), aby uzyskać lepszą wydajność.

Przykłady

Prosty przykład

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

Wyjście

print_0
prawda

Równość porównania IPv4 — notacja prefiksu IP określona wewnątrz ciągów 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)

Wyjście

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

Równość porównania IPv4 — notacja prefiksu IP określona wewnątrz ciągów IPv4 i dodatkowy argument ipv4_is_match() funkcji

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)

Wyjście

ip1_string ip2_string przedrostek result
192.168.1.1 192.168.1.0 31 prawda
192.168.1.1/24 192.168.1.255 31 prawda
192.168.1.1 192.168.1.255 24 prawda