ipv4_is_in_any_range()

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

Syntax

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 Gerekli Açıklama
Ipv4Address string ✔️ IPv4 adresini temsil eden bir 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çimi, <base IP>/<prefix length>ön ek uzunluğunun netmask içindeki baştaki 1 bitin sayısı olduğu şeklindedir. Ö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 önde gelen 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 gösterimi fe80::85d:e82c:9446:7994/120, ffff:ffff:ffff:ff00 netmask ile fe80::85d:e82c:9446:7994 IP adresini temsil eder. Bu netmask 120 baştaki 1 bit veya ön ek uzunluğu 120'ye sahiptir.

Döndürülenler

  • true: IPv4 adresi belirtilen IPv4 ağlarından herhangi birinin aralığındaysa.
  • false:Aksi takdir -de.
  • null: İki IPv4 dizelerinden 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')

Çıkış

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"]))

Çıkış

Sonuç
true

Tabloyu IPv4 aralık 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)

Çıkış

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