次の方法で共有


ipv4_compare()

[ バージョン ] ドロップダウン リストを使用してサービスを切り替えます。 ナビゲーションの詳細を確認します
適用対象: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

2 つの IPv4 文字列を比較します。 2 つの IPv4 文字列が解析され、引数プレフィックスから計算された組み合わせ IP プレフィックス マスクと省略可能な PrefixMask 引数を計算しながら比較されます。

構文

ipv4_compare( Expr1,Expr2[ ,PrefixMask])

パラメーター

名前 タイプ 必須 Description
Expr1Expr2 string ✔️ IPv4 アドレスを表す文字列式。 IPv4 文字列は 、IP プレフィックス表記を使用してマスクできます。
PrefixMask int 考慮される最上位ビットの数を表す 0 ~ 32 の整数。

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 です。

返品ポリシー

  • 0: 最初の IPv4 文字列引数の長い表現が 2 番目の IPv4 文字列引数と等しい場合
  • 1: 最初の IPv4 文字列引数の長い表現が 2 番目の IPv4 文字列引数より大きい場合
  • -1: 最初の IPv4 文字列引数の長い表現が 2 番目の IPv4 文字列引数より小さい場合
  • null: 2 つの IPv4 文字列のいずれかに対する変換が成功しなかった場合。

例: IPv4 比較等価ケース

IPv4 文字列内で指定された IP プレフィックス表記を使用して IP を比較する

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_compare(ip1_string, ip2_string)

アウトプット

ip1_string ip2_string 結果
192.168.1.0 192.168.1.0 0
192.168.1.1/24 192.168.1.255 0
192.168.1.1 192.168.1.255/24 0
192.168.1.1/30 192.168.1.255/24 0

IPv4 文字列内で指定された IP プレフィックス表記を使用し、 ipv4_compare() 関数の追加引数として IP を比較する

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_compare(ip1_string, ip2_string, prefix)

アウトプット

ip1_string ip2_string prefix 結果
192.168.1.1 192.168.1.0 31 0
192.168.1.1/24 192.168.1.255 31 0
192.168.1.1 192.168.1.255 二十四 0