すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:構文解析関数

最終更新日:Aug 28, 2024

このトピックでは、User-Agent解析関数の構文とパラメーターについて説明します。 このトピックでは、関数の使用方法の例も示します。

関数

機能

説明

ua_parse_device

User-Agentを解析し、デバイス情報を返します。

ua_parse_os

User-Agentを解析し、オペレーティングシステム情報を返します。

ua_parse_agent

User-Agentを解析し、ブラウザ情報を返します。

ua_parse_all

User-Agentを解析し、すべての情報を返します。

url_parse

URLを解析し、URLのコンポーネントを返します。

url_parse_qs

URLのクエリ文字列を解析し、クエリ文字列のコンポーネントを返します。

説明

User-Agent解析関数は、解析された値がNoneであるフィールドを削除します。 たとえば、解析されたデバイス情報が {'brand': None, 'family': 'Other', 'model': None} の場合、brandフィールドとmodelフィールドは削除され、最終的な解析結果は {'family': 'Other'} になります。

ua_parse_device

ua_parse_device関数はUser-Agentを解析し、デバイス情報を返します。

  • 構文

    ua_parse_device(value)
  • パラメーター

    パラメーター

    データ型

    必須/任意

    説明

    String

    必須

    解析するUser-Agent文字列。

  • レスポンス

    JSON形式のデータセットが返されます。

    • 生ログ

      http_user_agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/192.168.0.0 Safari/537.36
    • 変換ルール

      e_set("new_column",ua_parse_device(v("http_user_agent")))
    • 結果

      http_user_agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/192.168.0.0 Safari/537.36
      new_column:{'family': 'Other'}

ua_parse_os

ua_parse_os関数はUser-Agentを解析し、オペレーティングシステム情報を返します。

  • 構文

    ua_parse_os(value)
  • パラメーター

    パラメーター

    データ型

    必須/任意

    説明

    value

    String

    必須

    解析するUser-Agent文字列。

  • レスポンス

    JSON形式のデータセットが返されます。

    • 生ログ

      http_user_agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/192.168.0.0 Safari/537.36
    • 変換ルール

      e_set("new_column",ua_parse_os(v("http_user_agent")))
    • 結果

      http_user_agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/192.168.0.0 Safari/537.36
      new_column:{'family': 'Mac OS X',
                          'major': '10',
                          'minor': '9',
                          'patch': '4'}

ua_parse_agent

The ua_parse_agent機能parses User-Agentさを返しブラウザ情報。

  • 構文

    ua_parse_agent(value)
  • パラメーター

    パラメーター

    データ型

    必須/任意

    説明

    value

    String

    必須

    解析するUser-Agent文字列。

  • レスポンス

    A JSONフォーマットデータセットはreturned.

    • 生ログ

      http_user_agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/192.168.0.0 Safari/537.36
    • 変換ルール

      e_set("new_column",ua_parse_agent(v("http_user_agent")))
    • 結果

      http_user_agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/192.168.0.0 Safari/537.36
      new_column:{'family': 'Chrome', 'major': '192', 'minor': '168', 'patch': '0'}

ua_parse_all

ua_parse_all関数はUser-Agentを解析し、すべての情報を返します。

  • 構文

    ua_parse_all(value)
  • パラメーター

    パラメーター

    データ型

    必須/任意

    説明

    value

    String

    必須

    解析するUser-Agent文字列。

  • レスポンス

    JSON形式のデータセットが返されます。

    • 生ログ

      http_user_agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/192.168.0.0 Safari/537.36
    • 変換ルール

      e_set("new_column",ua_parse_all(v("http_user_agent")))
    • 結果

      http_user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/192.168.0.0 Safari/537.36
      new_column: {
        "user_agent": {
          "family": "Chrome",
          "major": "192",
          "minor": "168",
          "patch": "0"
        },
        "os": {
          "family": "Mac OS X",
          "major": "10",
          "minor": "9",
          "patch": "4"
        },
        "device": {
          "family": "Mac",
          "brand": "Apple",
          "model": "Mac"
        }
      }

url_parse

url_parse関数はURLを解析し、URLのコンポーネントを返します。

  • 構文

    url_parse(url, scheme="", allow_fragments=True)
  • パラメーター

    パラメーター

    データ型

    必須/任意

    説明

    value

    String

    必須

    解析するURL。

    scheme

    String

    任意

    ネットワークプロトコル。 このパラメーターはデフォルトで空となります。

    解析するURLにネットワークプロトコルが含まれていない場合、このパラメーターの値は結果のschemeパラメーターとして返されます。

    allow_fragments

    Boolean

    任意

    URL内のフラグメント部分を解析するかどうかを指定します。 有効な値:

    • True: URLのフラグメント部分を解析します。 fragmentパラメーターに特定の値が返されます。 デフォルト値です。

    • False: URL内のフラグメント部分を解析しません。 fragmentパラメーターに空の文字列が返されます。

  • レスポンス

    JSON形式のデータが返されます。 次の表に、結果のパラメーターを示します。

    項目

    説明

    scheme

    ネットワークプロトコル。

    netloc

    ネットワークの場所。

    path

    階層パスの識別子。

    query

    クエリコンポーネント。

    fragment

    フラグメント識別子。

    • 例1: デフォルトのパラメーター設定を使用します。 URLのコンポーネントが返されます。

      • 生ログ

        content:https://username:username@example.com:8083/hello/asdah/;type=docx?filename=python3.docx#urllib
      • 変換ルール

        e_set("url",url_parse(v("content")))
      • 結果

        content:https://username:username@example.com:8083/hello/asdah/;type=docx?filename=python3.docx#urllib
        url:{
                "scheme": "https",
                "netloc": "username:username@example.com:8083",
                "path": "/hello/asdah/;type=docx",
                "query": "filename=python3.docx",
                "fragment": "urllib",
            }
    • 例2: allow_fragmentsをFalseに設定します。 fragmentパラメーターに空の文字列が返されます。

      • 生ログ

        content:https://username:username@example.com:8083/hello/asdah/;type=docx?filename=python3.docx#urllib
      • 変換ルール

        e_set("url",url_parse(v("content"),allow_fragments=False))
      • 結果

        content:https://username:username@example.com:8083/hello/asdah/;type=docx?filename=python3.docx#urllib
        url:{
                        "scheme": "https",
                "netloc": "username:username@example.com:8083",
                "path": "/hello/asdah/;type=docx",
                "query": "filename=python3.docx",
                "fragment": "",
            }
    • 例3: schemeをhttpsに設定し、allow_fragmentsをFalseに設定します。 schemeパラメーターにはhttpsが返され、fragmentパラメーターには空の文字列が返されます。

      • 生ログ

        content://username:username@example.com:8083/hello/asdah/;type=docx?filename=python3.docx#urllib
      • 変換ルール

        e_set("url",url_parse(v("content"),scheme="https", allow_fragments=False))
      • 結果

        content://username:username@example.com:8083/hello/asdah/;type=docx?filename=python3.docx#urllib
        url:{
               "scheme": "https",
                "netloc": "username:username@example.com:8083",
                "path": "/hello/asdah/;type=docx",
                "query": "filename=python3.docx",
                "fragment": "",
            }

url_parse_qs

url_parse_qs関数は、URLのクエリ文字列を解析し、クエリ文字列のコンポーネントを返します。

  • 構文

    url_parse_qs(
        url_qs,
        keep_blank_values=False,
        strict_parsing=False,
        encoding="utf-8",
        errors="replace",
        ignore_multi_fields=True,
    )
  • パラメーター

    パラメーター

    データ型

    必須/任意

    説明

    url_qs

    String

    必須

    解析するURLクエリ文字列。

    keep_blank_values

    Boolean

    任意

    空のパラメーターを返すかどうかを指定します。 有効な値:

    • False: 空のパラメータは返されません。 デフォルト値です。

    • True: 空のパラメーターを返し、空の文字列をパラメーターの値として返します。

    strict_parsing

    Boolean

    任意

    解析エラーを処理するかどうかを指定します。 有効な値:

    • True: 解析エラーのValueError例外をトリガーします。

    • False: 解析エラーを無視します。 デフォルト値です。

    encoding

    String

    任意

    ファイルのエンコード方法。 デフォルト値: utf-8 パーセント記号 (%) を含むエスケープ文字はUnicode文字に解析されます。 ASCIIがサポートされています。

    error

    String

    任意

    The方法プロセスできない文字認識ベースにエンコード方式。 有効な値:

    • ignore: 文字を無視します。

    • 厳格な: レポートエラーと破棄ログ含ま文字。

    • 置換: 置き換え文字質問マーク (?) 。 デフォルト値です。

    • xmlcharrefreplace: 文字をXML文字に置き換えます。

    ignore_multi_fields

    Num

    任意

    1つのパラメーターに対して返される値の数。 有効な値:

    • True: 各パラメータの最初の値のみを返します。 戻り値は文字列です。 デフォルト値です。

    • False: 各パラメータのすべての値を返します。 戻り値はリストです。

  • レスポンス

    JSON形式のデータが返されます。 次の表に、結果のパラメーターを示します。

    項目

    説明

    logType

    ログのタイプ。

    uid

    ログの一意の識別子。

    time

    ログの時刻。

    msg

    ログ内の情報。

    • 例1: keep_blank_valuesをTrueに設定します。 空のパラメーターが返されます。

      • 生ログ

        content:logType=net_wheel_log&uid=62452****&vid=6.1.0_gf_pc&asb=1206427&git=&time=22-11-3+%e4%b8%8a11%e6%97%b649%e5%88%8633%e7%a7%92&operatingSystem=Windows+10++(10.0.0)+64bit&deviceModel=System+Product+Name+(System+manufacturer)&graphicsDeviceName=NVIDIA+GeForce+GTX+1650&graphicsDeviceType=Direct3D11&graphicsDeviceVendor=NVIDIA&graphicsDeviceVersion=Direct3D+11.0+%5blevel+11.1%5d&graphicsMemorySize=3962&systemMemorySize=8127&processorCount=6&processorFrequency=3000&processorType=Intel(R)+Core(TM)+i5-9500F+CPU+%40+3.00GHz&deviceID=96da5902a042a5f84118995f88373f73650e76be166589726****&guessUID=62452****&networkReachability=wifi&msg=GetAuthkeyRsp
      • 変換ルール

        e_set("url",url_parse_qs(v("content"), keep_blank_values=True))
      • 結果

        content:logType=net_wheel_log&uid=62452****&vid=6.1.0_gf_pc&asb=1206427&git=&time=22-11-3+%e4%b8%8a11%e6%97%b649%e5%88%8633%e7%a7%92&operatingSystem=Windows+10++(10.0.0)+64bit&deviceModel=System+Product+Name+(System+manufacturer)&graphicsDeviceName=NVIDIA+GeForce+GTX+1650&graphicsDeviceType=Direct3D11&graphicsDeviceVendor=NVIDIA&graphicsDeviceVersion=Direct3D+11.0+%5blevel+11.1%5d&graphicsMemorySize=3962&systemMemorySize=8127&processorCount=6&processorFrequency=3000&processorType=Intel(R)+Core(TM)+i5-9500F+CPU+%40+3.00GHz&deviceID=96da5902a042a5f84118995f88373f73650e76be166589726****&guessUID=62452****&networkReachability=wifi&msg=GetAuthkeyRsp
        url:{
                "logType": "net_wheel_log",
                "uid": "62452****",
                "vid": "6.1.0_gf_pc",
                "asb": "1206427",
                "git": "",
                "time": "22-11-3 11:49:33",
                "operatingSystem": "Windows 10  (10.0.0) 64bit",
                "deviceModel": "System Product Name (System manufacturer)",
                "graphicsDeviceName": "NVIDIA GeForce GTX 1650",
                "graphicsDeviceType": "Direct3D11",
                "graphicsDeviceVendor": "NVIDIA",
                "graphicsDeviceVersion": "Direct3D 11.0 [level 11.1]",
                "graphicsMemorySize": "3962",
                "systemMemorySize": "8127",
                "processorCount": "6",
                "processorFrequency": "3000",
                "processorType": "Intel(R) Core(TM) i5-9500F CPU @ 3.00GHz",
                "deviceID": "96da5902a042a5f84118995f88373f73650e76be166589726****",
                "guessUID": "62452****",
                "networkReachability": "wifi",
                "msg": "GetAuthkeyRsp",
            }
    • 例2: keep_blank_valuesをFalseに設定します。 空でないパラメータが返されます。

      • 生ログ

        content:logType=net_wheel_log&uid=62452****&vid=6.1.0_gf_pc&asb=1206427&git=&time=22-11-3+%e4%b8%8a11%e6%97%b649%e5%88%8633%e7%a7%92&operatingSystem=Windows+10++(10.0.0)+64bit&deviceModel=System+Product+Name+(System+manufacturer)&graphicsDeviceName=NVIDIA+GeForce+GTX+1650&graphicsDeviceType=Direct3D11&graphicsDeviceVendor=NVIDIA&graphicsDeviceVersion=Direct3D+11.0+%5blevel+11.1%5d&graphicsMemorySize=3962&systemMemorySize=8127&processorCount=6&processorFrequency=3000&processorType=Intel(R)+Core(TM)+i5-9500F+CPU+%40+3.00GHz&deviceID=96da5902a042a5f84118995f88373f73650e76be166589726****&guessUID=62452****&networkReachability=wifi&msg=GetAuthkeyRsp
      • 変換ルール

        e_set("url",url_parse_qs(v("content")))
      • 結果

        content:logType=net_wheel_log&uid=62452****&vid=6.1.0_gf_pc&asb=1206427&git=&time=22-11-3+%e4%b8%8a11%e6%97%b649%e5%88%8633%e7%a7%92&operatingSystem=Windows+10++(10.0.0)+64bit&deviceModel=System+Product+Name+(System+manufacturer)&graphicsDeviceName=NVIDIA+GeForce+GTX+1650&graphicsDeviceType=Direct3D11&graphicsDeviceVendor=NVIDIA&graphicsDeviceVersion=Direct3D+11.0+%5blevel+11.1%5d&graphicsMemorySize=3962&systemMemorySize=8127&processorCount=6&processorFrequency=3000&processorType=Intel(R)+Core(TM)+i5-9500F+CPU+%40+3.00GHz&deviceID=96da5902a042a5f84118995f88373f73650e76be166589726****&guessUID=62452****&networkReachability=wifi&msg=GetAuthkeyRsp
        url:{
                "logType": "net_wheel_log",
                "uid": "62452****",
                "vid": "6.1.0_gf_pc",
                "asb": "1206427",
                "time": "22-11-3 11:49:33",
                "operatingSystem": "Windows 10  (10.0.0) 64bit",
                "deviceModel": "System Product Name (System manufacturer)",
                "graphicsDeviceName": "NVIDIA GeForce GTX 1650",
                "graphicsDeviceType": "Direct3D11",
                "graphicsDeviceVendor": "NVIDIA",
                "graphicsDeviceVersion": "Direct3D 11.0 [level 11.1]",
                "graphicsMemorySize": "3962",
                "systemMemorySize": "8127",
                "processorCount": "6",
                "processorFrequency": "3000",
                "processorType": "Intel(R) Core(TM) i5-9500F CPU @ 3.00GHz",
                "deviceID": "96da5902a042a5f84118995f88373f73650e76be166589726****",
                "guessUID": "62452****",
                "networkReachability": "wifi",
                "msg": "GetAuthkeyRsp",
            }
    • 例3: ignore_multi_fieldsをTrueに設定します。 各パラメーターの最初の値のみが返されます。

      • 生ログ

        content:logType=net_log&uid=62452****&x=1&x=2&x=3&asb=123&asb=456
      • 変換ルール

        e_set("url",url_parse_qs(v("content")))
      • 結果

        content:logType=net_log&uid=62452****&x=1&x=2&x=3&asb=123&asb=456
        url:{
            "logType": "net_log",
            "uid": "62452****",
            "x": "1",
            "asb": "123"
        }
    • 例4: ignore_multi_fieldsをFalseに設定します。 各パラメーターのすべての値が返されます。

      • 生ログ

        content:logType=net_log&uid=62452****&x=1&x=2&x=3&asb=123&asb=456
      • 変換ルール

        e_set("url",url_parse_qs(v("content"),ignore_multi_fields=False))
      • 結果

        content:logType=net_log&uid=62452****&x=1&x=2&x=3&asb=123&asb=456
        url:{
            "logType": ["net_log"],
              "uid": ["62452****"],
              "x": ["1", "2", "3"],
              "asb": ["123", "456"],
        }