network()

network() 関数は、IPv4またはIPv6アドレスとCIDRプレフィックス長を受け取り、該当ネットワークの開始アドレス(ネットワークアドレス)を返します。

構文

network(IP, CIDR)

パラメーター

IP
ネットワークアドレスを計算するIPv4またはIPv6アドレスです。文字列またはIPアドレス型を許可します。
CIDR
プレフィックス長を表す整数です。IPv4の場合は0〜32、IPv6の場合は0〜128の範囲の値を指定します。integerlongshort 型を許可します。

説明

network() 関数は、IPアドレスにCIDRプレフィックス長に対応するサブネットマスクを適用してネットワークアドレスを文字列で返します。例えば 192.0.2.1 にプレフィックス長24を適用すると 192.0.2.0 を返します。

IPv4とIPv6の両方をサポートします。CIDR値が有効範囲を外れるか、CIDR が整数型でない場合は null を返します。IP または CIDRnull の場合は null を返します。

エラーコード

該当なし

使用例

これらの使用例で参照する WEB_APACHE_SAMPLE テーブルを準備するには、クエリ実習用データを参照してください。

  1. 送信元IPアドレスから/24のネットワークアドレスを抽出します。

    table limit=5 WEB_APACHE_SAMPLE | eval result = network(src_ip, 24)
    | fields src_ip, result
    
  2. 送信元IPアドレスから/16のネットワークアドレスを抽出します。

    table limit=5 WEB_APACHE_SAMPLE | eval result = network(src_ip, 16)
    | fields src_ip, result
    
  3. IPv6アドレスから/96のネットワークアドレスを抽出します。

    json "{}" | eval net = network("2001:db8::1:2:3", 96)
    | # net: 2001:db8:0:0:0:1:0:0
    
  4. NULL入力

    json "{}" | eval net = network(null, 24)
    | # net: null
    

互換性

network() 関数はSonar 4.0以前のバージョンから提供されています。