ipv4_is_in_any_range()
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Sprawdza, czy adres ciągu IPv4 znajduje się w dowolnym z określonych zakresów adresów IPv4.
Wskazówki dotyczące wydajności
Uwaga
Gdy jest używanych więcej niż 128 terminów wyszukiwania, optymalizacja wyszukiwania indeksu tekstowego jest wyłączona, co może prowadzić do zmniejszenia wydajności zapytań.
Składnia
ipv4_is_in_any_range(
Ipv4Address ,
Ipv4Range [ ,
Ipv4Range ...])
ipv4_is_in_any_range(
Ipv4Address ,
Ipv4Ranges )
Dowiedz się więcej na temat konwencji składni.
Parametry
Nazwisko | Type | Wymagania | opis |
---|---|---|---|
Ipv4Address | string |
✔️ | Wyrażenie reprezentujące adres IPv4. |
Ipv4Range | string |
✔️ | Zakres IPv4 lub lista zakresów IPv4 napisanych za pomocą notacji prefiksów IP. |
Ipv4Ranges | dynamic |
✔️ | Tablica dynamiczna zawierająca zakresy IPv4 napisane za pomocą notacji prefiksów IP. |
Uwaga
Wymagany jest co najmniej jeden ciąg IPv4Range lub tablica dynamiczna IPv4Ranges .
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 adres IPv4 znajduje się w zakresie dowolnej z określonych sieci IPv4.false
:Inaczej.null
: Jeśli konwersja jednego z dwóch ciągów IPv4 nie powiodła się.
Przykłady
Składnia przy użyciu listy ciągów
print Result=ipv4_is_in_any_range('192.168.1.6', '192.168.1.1/24', '10.0.0.1/8', '127.1.0.1/16')
Wyjście
Result |
---|
prawda |
Składnia przy użyciu tablicy dynamicznej
print Result=ipv4_is_in_any_range("127.0.0.1", dynamic(["127.0.0.1", "192.168.1.1"]))
Wyjście
Result |
---|
prawda |
Rozszerzanie tabeli za pomocą sprawdzania zakresu IPv4
let LocalNetworks=dynamic([
"192.168.1.1/16",
"127.0.0.1/8",
"10.0.0.1/8"
]);
let IPs=datatable(IP:string) [
"10.1.2.3",
"192.168.1.5",
"123.1.11.21",
"1.1.1.1"
];
IPs
| extend IsLocal=ipv4_is_in_any_range(IP, LocalNetworks)
Wyjście
Adres IP | IsLocal |
---|---|
10.1.2.3 | prawda |
192.168.1.5 | prawda |
123.1.11.21 | fałsz |
1.1.1.1 | fałsz |