ipv4ToNumber
ipv4ToNumber operator でインターネット プロトコル バージョン 4 (IPv4) IP アドレスをオクテット ピリオド区切り形式から 10 進形式に変換します。この 10 進形式を使用すると、IP マスキングよりも IP アドレス間の比較が簡単になります。
構文
ipv4ToNumber(<ip_addr>) [as <field>]
ルール
- この関数への入力は、有効な IPv4 アドレス文字列でなければなりません。
例
IP アドレスの parse と数値への変換
次のクエリは、IP アドレスを parse して数値に変換してから、fields operator を使用して「ip」と「num」以外のすべてのフィールドを削除します。
_sourceCategory=service remote_ip
| parse "[remote_ip=*]" as ip
| ipv4ToNumber(ip) as num
| fields ip, num
結果は次のようになります。
単一ユーザの IP 範囲の検出
次のクエリは、ユーザごとの IP アドレスの数と IP 範囲を調べます。この情報から、他人のユーザ アカウントを乗っ取っている人物を特定できます。
_sourceCategory=service remote_ip
| parse "auth=User:*:" as user
| parse "[remote_ip=*]" as remote_ip
| ipv4ToNumber(remote_ip) as remote_ip_dec
| max(remote_ip_dec) as max_ip, min(remote_ip_dec) as min_ip, count_distinct(remote_ip_dec) as count_ips by user
| max_ip - min_ip as ip_range
| where ip_range > 0
| fields user, count_ips, ip_range
結果は次のようになります。