ipv4_is_match()

İki IPv4 dizesiyle eşleşir. İki IPv4 dizesi ayrıştırılır ve bağımsız değişken ön eklerinden hesaplanan birleşik IP ön eki maskesi ve isteğe bağlı prefix bağımsız değişken hesaplanırken karşılaştırılır.

Syntax

ipv4_is_match(ip1,ip2[ ,Önek])

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

Parametreler

Ad Tür Gerekli Açıklama
ip1, ip2 string ✔️ IPv4 adresini temsil eden ifade. IPv4 dizeleri IP ön eki gösterimi kullanılarak maskelenebilir.
Önek int 0 ile 32 arasındaki bir tamsayı, dikkate alınan en önemli bitlerin sayısını temsil eder.

IP ön eki gösterimi

IP ön eki gösterimi (CIDR gösterimi olarak da bilinir), bir 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. Bu nedenle 192.168.2.0/24 gösterimi 255.255.255.0 net maskesi ile 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, fe80::85d:e82c:9446:7994 IP adresini ve ff:ffff:ffff:ffff:ffff:ffff:ff00 ip adresini temsil eder. Bu netmask 120 baştaki 1 bit veya 120 ön ek uzunluğuna sahiptir.

Döndürülenler

  • true: İlk IPv4 dize bağımsız değişkeninin uzun gösterimi ikinci IPv4 dize bağımsız değişkenine eşitse.
  • false:Aksi takdir -de.
  • null: İki IPv4 dizelerinden biri için dönüştürme başarılı olmadıysa.

Not

Aralık olmayan bir IPv4 adresiyle eşleştirirken, daha iyi performans için equals işlecini ()== kullanmanızı öneririz.

Örnekler

IPv4 karşılaştırma eşitliği - IPv4 dizelerinde belirtilen IP ön eki gösterimi

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)

Çıkış

ip1_string ip2_string sonuç
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 karşılaştırma eşitliği - IPv4 dizelerinde belirtilen IP ön eki gösterimi ve işlevin ipv4_is_match() ek bağımsız değişkeni

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)

Çıkış

ip1_string ip2_string Önek sonuç
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