Layanan Log Sederhana menyediakan fungsi penguraian User-Agent untuk mengekstrak informasi perangkat, sistem operasi, dan browser dari string User-Agent, serta fungsi penguraian URL untuk mengurai komponen URL dan query string.
Daftar fungsi
|
Function |
Description |
|
Mengurai informasi perangkat dari string User-Agent. |
|
|
Mengurai informasi sistem operasi dari string User-Agent. |
|
|
Mengurai informasi browser dari string User-Agent. |
|
|
Mengurai semua informasi dari string User-Agent. |
|
|
Mengurai komponen-komponen URL. |
|
|
Mengurai parameter yang terdapat dalam query string URL. |
Fungsi penguraian User-Agent menghapus bidang yang memiliki nilai None setelah penguraian. Misalnya, jika data perangkat yang diurai adalah {'brand': None, 'family': 'Other', 'model': None}, bidang brand dan model akan dihapus. Hasil akhirnya adalah {'family': 'Other'}.
ua_parse_device
Mengurai informasi perangkat dari string User-Agent.
-
Sintaksis
ua_parse_device(value) -
Parameter
Parameter Name
Data type
Required
Description
value
String
Yes
String User-Agent yang akan diurai.
-
Respons
Mengembalikan JSON.
-
Contoh
-
Log mentah
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 -
Aturan transformasi
e_set("new_column",ua_parse_device(v("http_user_agent"))) -
Hasil
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","brand":"Apple","model":"Mac"}
-
ua_parse_os
Mengurai informasi sistem operasi dari string User-Agent.
-
Sintaksis
ua_parse_os(value) -
Parameter
Parameter name
Data type
Required
Description
value
String
Yes
String User-Agent yang akan diurai.
-
Respons
Mengembalikan JSON.
-
Contoh
-
Log mentah
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 -
Aturan transformasi
e_set("new_column",ua_parse_os(v("http_user_agent"))) -
Hasil
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
Mengurai informasi browser dari string User-Agent.
-
Sintaksis
ua_parse_agent(value) -
Parameter
Parameter
Data type
Required
Description
value
String
Yes
String User-Agent yang akan diurai.
-
Respons
Mengembalikan JSON.
-
Contoh
-
Log mentah
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 -
Aturan transformasi
e_set("new_column",ua_parse_agent(v("http_user_agent"))) -
Hasil
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
Mengurai semua informasi dari string User-Agent.
-
Sintaksis
ua_parse_all(value) -
Parameter
Parameter Name
Data type
Required
Description
value
String
Yes
String User-Agent yang akan diurai.
-
Respons
Mengembalikan JSON.
-
Contoh
-
Log mentah
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 -
Aturan transformasi
e_set("new_column",ua_parse_all(v("http_user_agent"))) -
Hasil
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
Mengurai komponen-komponen URL.
-
Sintaksis
url_parse(url, scheme="", allow_fragments=True) -
Parameter
Parameter Name
Data type
Required
Description
value
String
Yes
URL yang akan diurai.
scheme
String
No
Protokol jaringan. Default: string kosong.
Digunakan sebagai nilai scheme dalam hasil hanya ketika URL tidak mengandung protokol.
allow_fragments
Boolean
No
Apakah bagian fragment dari URL akan diurai.
-
True (default): Mengurai bagian fragment. Bidang fragment dalam hasil berisi nilai spesifiknya.
-
False: Tidak mengurai bagian fragment. Bidang fragment dalam hasil berupa string kosong.
-
-
Respons
Mengembalikan JSON dengan bidang-bidang berikut.
Field
Description
scheme
Protokol jaringan
netloc
Lokasi jaringan
path
Jalur hierarkis
query
Komponen query
fragment
Pengidentifikasi fragmen
-
Contoh
-
Contoh 1: Gunakan parameter default untuk mengembalikan komponen-komponen URL.
-
Log mentah
content:https://username:username@example.com:8083/hello/asdah/;type=docx?filename=python3.docx#urllib -
Aturan transformasi
e_set("url",url_parse(v("content"))) -
Hasil
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" }
-
-
Contoh 2: Atur allow_fragments ke False. Nilai parameter fragment dalam hasil berupa string kosong.
-
Log mentah
content:https://username:username@example.com:8083/hello/asdah/;type=docx?filename=python3.docx#urllib -
Aturan transformasi
e_set("url",url_parse(v("content"),allow_fragments=False)) -
Hasil
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": "" }
-
-
Contoh 3: Atur scheme ke https dan allow_fragments ke False. Nilai parameter scheme dalam hasil adalah https, dan nilai parameter fragment berupa string kosong.
-
Log mentah
content://username:username@example.com:8083/hello/asdah/;type=docx?filename=python3.docx#urllib -
Aturan transformasi
e_set("url",url_parse(v("content"),scheme="https", allow_fragments=False)) -
Hasil
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
Mengurai komponen-komponen query string URL.
-
Sintaksis
url_parse_qs( url_qs, keep_blank_values=False, strict_parsing=False, encoding="utf-8", errors="replace", ignore_multi_fields=True, ) -
Parameter
Parameter Name
Data type
Required
Description
url_qs
String
Yes
Query string URL yang akan diurai.
keep_blank_values
Boolean
No
Apakah parameter yang memiliki nilai kosong akan dikembalikan.
-
False (default): Nilai tersebut tidak dikembalikan.
-
True: Mengembalikan parameter tersebut dan mengatur nilainya menjadi string kosong.
strict_parsing
Boolean
No
Cara menangani error penguraian.
-
True: Memicu exception ValueError.
-
False (default): Error diabaikan.
encoding
String
No
Kodek yang digunakan untuk mendekode karakter percent-encoded menjadi Unicode. Default: utf-8. ASCII juga didukung.
errors
String
No
Cara menangani karakter yang tidak dapat didekode oleh kodek yang ditentukan. Nilai yang valid:
-
ignore: Tidak ada tindakan yang diambil.
-
strict: Melaporkan error dan membuang entri log.
-
replace (default): Mengganti karakter yang tidak dikenali dengan tanda tanya (?).
-
xmlcharrefreplace: Mengganti karakter yang tidak dikenali dengan referensi karakter XML yang sesuai.
ignore_multi_fields
Number
No
Apakah hanya nilai pertama untuk setiap parameter yang dikembalikan.
-
True (default): Hanya mengembalikan nilai pertama untuk setiap parameter. Nilainya berupa string.
-
False: Mengembalikan semua nilai untuk setiap parameter. Nilainya dikembalikan dalam bentuk daftar.
-
-
Respons
Mengembalikan JSON dengan bidang-bidang berikut.
Parameter
Description
logType
Jenis log.
uid
Identifier unik log.
time
Timestamp log.
msg
Konten pesan log.
-
Contoh
-
Contoh 1: Atur keep_blank_values ke True. Hasil mencakup parameter dengan nilai kosong.
-
Log mentah
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 -
Aturan transformasi
e_set("url",url_parse_qs(v("content"), keep_blank_values=True)) -
Hasil
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 AM", "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" }
-
-
Contoh 2: Atur keep_blank_values ke nilai default (False). Hasil tidak mencakup parameter dengan nilai kosong.
-
Log mentah
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 -
Aturan transformasi
e_set("url",url_parse_qs(v("content"))) -
Hasil
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" }
-
-
Contoh 3: Atur ignore_multi_fields ke nilai default (True). Hanya nilai pertama untuk setiap parameter yang dikembalikan.
-
Log mentah
content:logType=net_log&uid=62452****&x=1&x=2&x=3&asb=123&asb=456 -
Aturan transformasi
e_set("url",url_parse_qs(v("content"))) -
Hasil
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" }
-
-
Contoh 4: Atur ignore_multi_fields ke False. Semua nilai untuk setiap parameter dikembalikan.
-
Log mentah
content:logType=net_log&uid=62452****&x=1&x=2&x=3&asb=123&asb=456 -
Aturan transformasi
e_set("url",url_parse_qs(v("content"),ignore_multi_fields=False)) -
Hasil
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"] }
-
-