Udostępnij za pośrednictwem


ipv4_is_in_any_range()

Dotyczy: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft 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