このトピックでは、User-Agent解析関数の構文とパラメーターについて説明します。 このトピックでは、関数の使用方法の例も示します。
関数
機能 | 説明 |
User-Agentを解析し、デバイス情報を返します。 | |
User-Agentを解析し、オペレーティングシステム情報を返します。 | |
User-Agentを解析し、ブラウザ情報を返します。 | |
User-Agentを解析し、すべての情報を返します。 | |
URLを解析し、URLのコンポーネントを返します。 | |
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"], }