ipv6_is_in_range ()

檢查 IPv6 字串位址是否在 IPv6 前置詞表示法範圍內。

Syntax

ipv6_is_in_range(Ipv6Address,Ipv6Range)

深入瞭解 語法慣例

參數

名稱 類型 必要 Description
Ipv6Address string ✔️ 表示 IPv6 位址的表達式。
Ipv6Range string ✔️ 表達式,表示使用 IP前置詞表示法的IPv6範圍。

IP 首碼標記法

IP 前置詞表示法 (也稱為 CIDR 表示法) 是表示 IP 位址及其相關聯網路掩碼的簡潔方式。 格式為 <base IP>/<prefix length>,其中前置長度是 netmask 中前置 1 位的數目。 前置長度會決定屬於網路的IP位址範圍。

針對 IPv4,前置長度是介於 0 到 32 之間的數位。 因此,表示法 192.168.2.0/24 代表 IP 位址 192.168.2.0,且 netmask 為 255.255.255.0。 此網路掩碼有 24 個前置 1 位,或前置長度為 24。

對於 IPv6,前置長度是介於 0 到 128 之間的數位。 因此,表示法 fe80::85d:e82c:9446:7994/120 代表 IP 位址 fe80::85d:e82c:9446:7994,且 netmask 為 ffff:ffff:ff00。 此 netmask 有 120 個前置 1 位,或前置長度為 120。

傳回

  • true:如果第一個 IPv6 字串自變數的長表示法位於第二個 IPv6 字串自變數的範圍內。
  • false:則不在範圍內。
  • null:如果兩個 IPv6 字串的其中一個無法成功轉換。

範例

datatable(ip_address:string, ip_range:string)
[
 'a5e:f127:8a9d:146d:e102:b5d3:c755:abcd',    'a5e:f127:8a9d:146d:e102:b5d3:c755:0000/112',
 'a5e:f127:8a9d:146d:e102:b5d3:c755:abcd',    'a5e:f127:8a9d:146d:e102:b5d3:c755:abcd',
 'a5e:f127:8a9d:146d:e102:b5d3:c755:abcd',    '0:0:0:0:0:ffff:c0a8:ac/60',
]
| extend result = ipv6_is_in_range(ip_address, ip_range)

輸出

ip_address ip_range result
a5e:f127:8a9d:146d:e102:b5d3:c755:abcd a5e:f127:8a9d:146d:e102:b5d3:c755:0000/112
a5e:f127:8a9d:146d:e102:b5d3:c755:abcd a5e:f127:8a9d:146d:e102:b5d3:c755:abcd
a5e:f127:8a9d:146d:e102:b5d3:c755:abcd 0:0:0:0:0:ffff:c0a8:ac/60 False