ipv6_is_match()
適用対象: ✅Microsoft Fabric✅Azure データ エクスプローラー✅Azure Monitor✅Microsoft Sentinel
2 つの IPv6 または IPv4 ネットワーク アドレス文字列を照合します。 2 つの IPv6/IPv4 文字列は、引数のプレフィックスと省略可能な prefix
引数から計算された複合 IP プレフィックス マスクを考慮しながら解析され、比較されます。
Note
関数は、IPv6 と IPv4 の両方のネットワーク アドレスを表す引数を受け入れて比較できます。 呼び出し元が引数が IPv4 形式であることを認識している場合は、 ipv4_is_compare () 関数を使用します。 この関数を実行すると、実行時のパフォーマンスが向上します。
構文
ipv6_is_match(
ip1,
ip2[ ,
prefix])
構文規則について詳しく知る。
パラメーター
件名 | タイプ | Required | 説明 |
---|---|---|---|
ip1、 ip2 | string |
✔️ | IPv6 または IPv4 アドレスを表す式。 IPv6 および IPv4 文字列は IP プレフィックス表記を使用してマスクできます。 |
prefix | int |
考慮される最上位ビットの数を表す 0 ~ 128 の整数。 |
IP - プレフィックスの表記
IP プレフィックス表記 (CIDR 表記とも呼ばれます) は、IP アドレスとそれに関連付けられているネットワーク マスクを表す簡潔な方法です。 形式は <base IP>/<prefix length>
で、プレフィックスの長さはネットマスク内の先頭の 1 ビットの数です。 プレフィックスの長さは、ネットワークに属する IP アドレスの範囲を決定します。
IPv4 の場合、プレフィックスの長さは 0 から 32 までの数値です。 したがって、表記 192.168.2.0/24 は、255.255.255.0 のネットマスクを持つ IP アドレス 192.168.2.0 を表します。 このネットマスクには、先頭に 1 ビットが 24 個、プレフィックスの長さが 24 個あります。
IPv6 の場合、プレフィックスの長さは 0 から 128 までの数値です。 そのため、表記 fe80::85d:e82c:9446:7994/120 は、ip アドレス fe80::85d:e82c:9446:7994 を ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff00 のネットマスクで表します。 このネットマスクの先頭は 120 ビット、プレフィックス長は 120 です。
返品
true
: 最初の IPv6/IPv4 文字列引数の長文表現が 2 番目の IPv6/IPv4 文字列引数と等しい場合。false
: それ以外の場合。null
: IPv6/IPv4 文字列のいずれかの変換が成功しなかった場合。
例
Ipv6/IPv4 等値比較のケース - IPv6/IPv4 文字列内で指定された IP プレフィックス表記
datatable(ip1_string:string, ip2_string:string)
[
// IPv4 are compared as IPv6 addresses
'192.168.1.1', '192.168.1.1', // Equal IPs
'192.168.1.1/24', '192.168.1.255', // 24 bit IP4-prefix is used for comparison
'192.168.1.1', '192.168.1.255/24', // 24 bit IP4-prefix is used for comparison
'192.168.1.1/30', '192.168.1.255/24', // 24 bit IP4-prefix is used for comparison
// IPv6 cases
'fe80::85d:e82c:9446:7994', 'fe80::85d:e82c:9446:7994', // Equal IPs
'fe80::85d:e82c:9446:7994/120', 'fe80::85d:e82c:9446:7998', // 120 bit IP6-prefix is used for comparison
'fe80::85d:e82c:9446:7994', 'fe80::85d:e82c:9446:7998/120', // 120 bit IP6-prefix is used for comparison
'fe80::85d:e82c:9446:7994/120', 'fe80::85d:e82c:9446:7998/120', // 120 bit IP6-prefix is used for comparison
// Mixed case of IPv4 and IPv6
'192.168.1.1', '::ffff:c0a8:0101', // Equal IPs
'192.168.1.1/24', '::ffff:c0a8:01ff', // 24 bit IP-prefix is used for comparison
'::ffff:c0a8:0101', '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 = ipv6_is_match(ip1_string, ip2_string)
出力
ip1_string | ip2_string | 結果 |
---|---|---|
192.168.1.1 | 192.168.1.1 | 1 |
192.168.1.1/24 | 192.168.1.255 | 1 |
192.168.1.1 | 192.168.1.255/24 | 1 |
192.168.1.1/30 | 192.168.1.255/24 | 1 |
fe80::85d:e82c:9446:7994 | fe80::85d:e82c:9446:7994 | 1 |
fe80::85d:e82c:9446:7994/120 | fe80::85d:e82c:9446:7998 | 1 |
fe80::85d:e82c:9446:7994 | fe80::85d:e82c:9446:7998/120 | 1 |
fe80::85d:e82c:9446:7994/120 | fe80::85d:e82c:9446:7998/120 | 1 |
192.168.1.1 | ::ffff:c0a8:0101 | 1 |
192.168.1.1/24 | ::ffff:c0a8:01ff | 1 |
::ffff:c0a8:0101 | 192.168.1.255/24 | 1 |
::192.168.1.1/30 | 192.168.1.255/24 | 1 |
IPv6/IPv4 等価比較のケース - IPv6/IPv4 文字列内で指定された IP プレフィックス表記と、ipv6_is_match()
関数の追加引数を使用
datatable(ip1_string:string, ip2_string:string, prefix:long)
[
// IPv4 are compared as IPv6 addresses
'192.168.1.1', '192.168.1.0', 31, // 31 bit IP4-prefix is used for comparison
'192.168.1.1/24', '192.168.1.255', 31, // 24 bit IP4-prefix is used for comparison
'192.168.1.1', '192.168.1.255', 24, // 24 bit IP4-prefix is used for comparison
// IPv6 cases
'fe80::85d:e82c:9446:7994', 'fe80::85d:e82c:9446:7995', 127, // 127 bit IP6-prefix is used for comparison
'fe80::85d:e82c:9446:7994/127', 'fe80::85d:e82c:9446:7998', 120, // 120 bit IP6-prefix is used for comparison
'fe80::85d:e82c:9446:7994/120', 'fe80::85d:e82c:9446:7998', 127, // 120 bit IP6-prefix is used for comparison
// Mixed case of IPv4 and IPv6
'192.168.1.1/24', '::ffff:c0a8:01ff', 127, // 127 bit IP6-prefix is used for comparison
'::ffff:c0a8:0101', '192.168.1.255', 120, // 120 bit IP6-prefix is used for comparison
'::192.168.1.1/30', '192.168.1.255/24', 127, // 120 bit IP6-prefix is used for comparison
]
| extend result = ipv6_is_match(ip1_string, ip2_string, prefix)
出力
ip1_string | ip2_string | prefix | 結果 |
---|---|---|---|
192.168.1.1 | 192.168.1.0 | 31 | 1 |
192.168.1.1/24 | 192.168.1.255 | 31 | 1 |
192.168.1.1 | 192.168.1.255 | 24 | 1 |
fe80::85d:e82c:9446:7994 | fe80::85d:e82c:9446:7995 | 127 | 1 |
fe80::85d:e82c:9446:7994/127 | fe80::85d:e82c:9446:7998 | 120 | 1 |
fe80::85d:e82c:9446:7994/120 | fe80::85d:e82c:9446:7998 | 127 | 1 |
192.168.1.1/24 | ::ffff:c0a8:01ff | 127 | 1 |
::ffff:c0a8:0101 | 192.168.1.255 | 120 | 1 |
::192.168.1.1/30 | 192.168.1.255/24 | 127 | 1 |