ipv4_is_match()
Matchar två IPv4-strängar. De två IPv4-strängarna parsas och jämförs samtidigt som de står för den kombinerade IP-prefixmasken som beräknas utifrån argumentprefix och det valfria prefix
argumentet.
Syntax
ipv4_is_match(
ip1,
ip2[ ,
Prefix])
Läs mer om syntaxkonventioner.
Parametrar
Namn | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
ip1, ip2 | string |
✔️ | Ett uttryck som representerar en IPv4-adress. IPv4-strängar kan maskeras med IP-prefixnotation. |
Prefix | int |
Ett heltal mellan 0 och 32 som representerar antalet viktigaste bitar som beaktas. |
IP-prefixnotation
IP-prefixnotation (kallas även CIDR-notation) är ett kortfattat sätt att representera en IP-adress och dess associerade nätverksmask. Formatet är <base IP>/<prefix length>
, där prefixets längd är antalet inledande 1 bitar i nätmasken. Prefixets längd avgör intervallet med IP-adresser som tillhör nätverket.
För IPv4 är prefixets längd ett tal mellan 0 och 32. Notationen 192.168.2.0/24 representerar alltså IP-adressen 192.168.2.0 med nätmasken 255.255.255.0. Nätmasken har 24 inledande 1 bitar, eller en prefixlängd på 24.
För IPv6 är prefixets längd ett tal mellan 0 och 128. Så notationen fe80::85d:e82c:9446:7994/120 representerar IP-adressen fe80::85d:e82c:9446:7994 med en nätmask av ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffffff:ff00. Denna nätmask har 120 inledande 1 bitar, eller en prefixlängd på 120.
Returer
true
: Om den långa representationen av det första IPv4-strängargumentet är lika med det andra IPv4-strängargumentet.false
:Annars.null
: Om konverteringen för en av de två IPv4-strängarna inte lyckades.
Anteckning
När du matchar mot en IPv4-adress som inte är ett intervall rekommenderar vi att du använder operatorn equals (==
) för bättre prestanda.
Exempel
IPv4-jämförelsejämlikhet – IP-prefixnotation anges i IPv4-strängarna
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)
Resultat
ip1_string | ip2_string | resultat |
---|---|---|
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 |
IPv4-jämförelsejämlikhet – IP-prefixnotation som anges i IPv4-strängarna och ytterligare ett argument för ipv4_is_match()
funktionen
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)
Resultat
ip1_string | ip2_string | Prefix | resultat |
---|---|---|---|
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 |
Relaterat innehåll
- Översikt över IPv4/IPv6-funktioner
- Översikt över IPv4-textmatchningsfunktioner
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för