Aracılığıyla paylaş


ipv4_is_in_any_range()

Şunlar için geçerlidir: ✅Microsoft Fabric✅Azure Veri Gezgini Azure İzleyiciMicrosoft Sentinel

IPv4 dize adresinin belirtilen IPv4 adres aralıklarından birinde olup olmadığını denetler.

Performans ipuçları

Not

128'den fazla arama terimi kullanıldığında, metin dizini arama iyileştirmesi devre dışı bırakılır ve bu da sorgu performansının düşmesine neden olabilir.

Sözdizimi

ipv4_is_in_any_range(Ipv4Address , Ipv4Range [ , Ipv4Range ...])

ipv4_is_in_any_range(Ipv4Address , Ipv4Ranges )

Söz dizimi kuralları hakkında daha fazla bilgi edinin.

Parametreler

Ad Tür Zorunlu Açıklama
Ipv4Address string ✔️ IPv4 adresini temsil eden ifade.
Ipv4Range string ✔️ IP ön eki gösterimiyle yazılmış bir IPv4 aralığı veya IPv4 aralıkları listesi.
Ipv4Ranges dynamic ✔️ IP ön eki gösterimiyle yazılmış IPv4 aralıklarını içeren dinamik bir dizi.

Not

Bir veya daha fazla IPv4Range dizesi veya bir IPv4Ranges dinamik dizisi gereklidir.

IP ön eki gösterimi

IP ön eki gösterimi (CIDR gösterimi olarak da bilinir), ip adresini ve ilişkili ağ maskesini temsil etmenin kısa bir yoludur. biçimidir; <base IP>/<prefix length>burada ön ek uzunluğu, netmask içindeki baştaki 1 bitin sayısıdır. Ön ek uzunluğu, ağa ait IP adresi aralığını belirler.

IPv4 için ön ek uzunluğu 0 ile 32 arasında bir sayıdır. Dolayısıyla 192.168.2.0/24 gösterimi 255.255.255.0 net maskesine sahip 192.168.2.0 IP adresini temsil eder. Bu netmask 24 baştaki 1 bit veya ön ek uzunluğu 24'tür.

IPv6 için ön ek uzunluğu 0 ile 128 arasında bir sayıdır. Bu nedenle, fe80::85d:e82c:9446:7994/120 gösterimi, ffff:ffff:ff00 netmask ile fe80::85d:e82c:9446:7994 IP adresini temsil eder. Bu netmask 120 baştaki 1 bit veya 120 ön ek uzunluğuna sahiptir.

Döndürülenler

  • true: IPv4 adresi belirtilen IPv4 ağlarından herhangi birinin aralığındaysa.
  • false:Yoksa.
  • null: İki IPv4 dizeden biri için dönüştürme başarılı olmadıysa.

Örnekler

Dize listesini kullanan söz dizimi

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')

Çıktı

Sonuç
true

Dinamik dizi kullanan söz dizimi

print Result=ipv4_is_in_any_range("127.0.0.1", dynamic(["127.0.0.1", "192.168.1.1"]))

Çıktı

Sonuç
true

Tabloyu IPv4 aralığı denetimiyle genişletme

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)

Çıktı

IP IsLocal
10.1.2.3 true
192.168.1.5 true
123.1.11.21 yanlış
1.1.1.1 yanlış