O Simple Log Service oferece funções de análise de User-Agent para extrair informações sobre dispositivo, sistema operacional e navegador a partir de strings User-Agent, além de funções de análise de URL para decompor URLs e strings de consulta.
Lista de funções
|
Função |
Descrição |
|
Extrai informações do dispositivo da string User-Agent. |
|
|
Obtém dados do sistema operacional a partir da string User-Agent. |
|
|
Analisa informações do navegador na string User-Agent. |
|
|
Processa todas as informações contidas na string User-Agent. |
|
|
Decompõe os componentes de uma URL. |
|
|
Interpreta os parâmetros presentes na string de consulta de uma URL. |
As funções de análise de User-Agent removem campos cujo valor seja None após o processamento. Por exemplo, se os dados analisados do dispositivo forem {'brand': None, 'family': 'Other', 'model': None}, os campos brand e model serão removidos. O resultado final será {'family': 'Other'}.
ua_parse_device
Extrai informações do dispositivo da string User-Agent.
-
Sintaxe
ua_parse_device(value) -
Parâmetros
Nome do parâmetro
Tipo de dados
Obrigatório
Descrição
value
String
Sim
A string User-Agent a ser analisada.
-
Resposta
Retorna JSON.
-
Exemplos
-
Log bruto
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 -
Regra de transformação
e_set("new_column",ua_parse_device(v("http_user_agent"))) -
Resultado
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
Obtém dados do sistema operacional a partir da string User-Agent.
-
Sintaxe
ua_parse_os(value) -
Parâmetros
Nome do parâmetro
Tipo de dados
Obrigatório
Descrição
value
String
Sim
A string User-Agent a ser analisada.
-
Resposta
Retorna JSON.
-
Exemplos
-
Log bruto
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 -
Regra de transformação
e_set("new_column",ua_parse_os(v("http_user_agent"))) -
Resultado
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
Analisa informações do navegador na string User-Agent.
-
Sintaxe
ua_parse_agent(value) -
Parâmetros
Parâmetro
Tipo de dados
Obrigatório
Descrição
value
String
Sim
A string User-Agent a ser analisada.
-
Resposta
Retorna JSON.
-
Exemplos
-
Log bruto
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 -
Regra de transformação
e_set("new_column",ua_parse_agent(v("http_user_agent"))) -
Resultado
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
Processa todas as informações contidas na string User-Agent.
-
Sintaxe
ua_parse_all(value) -
Parâmetros
Nome do parâmetro
Tipo de dados
Obrigatório
Descrição
value
String
Sim
A string User-Agent a ser analisada.
-
Resposta
Retorna JSON.
-
Exemplos
-
Log bruto
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 -
Regra de transformação
e_set("new_column",ua_parse_all(v("http_user_agent"))) -
Resultado
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
Decompõe os componentes de uma URL.
-
Sintaxe
url_parse(url, scheme="", allow_fragments=True) -
Parâmetros
Nome do parâmetro
Tipo de dados
Obrigatório
Descrição
value
String
Sim
A URL a ser analisada.
scheme
String
Não
Protocolo de rede. Padrão: string vazia.
Usado como valor de scheme no resultado apenas quando a URL não contém um protocolo.
allow_fragments
Booleano
Não
Define se a parte do fragmento da URL deve ser analisada.
-
True (padrão): Analisa a parte do fragmento. O campo fragment no resultado contém o valor específico.
-
False: Não analisa a parte do fragmento. O campo fragment no resultado é uma string vazia.
-
-
Resposta
Retorna JSON com os seguintes campos.
Campo
Descrição
scheme
Protocolo de rede
netloc
Localização de rede
path
Caminho hierárquico
query
Componente de consulta
fragment
Identificador de fragmento
-
Exemplos
-
Exemplo 1: Uso de parâmetros padrão para retornar os componentes de uma URL.
-
Log bruto
content:https://username:username@example.com:8083/hello/asdah/;type=docx?filename=python3.docx#urllib -
Regra de transformação
e_set("url",url_parse(v("content"))) -
Resultado
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" }
-
-
Exemplo 2: Defina allow_fragments como False. O valor do parâmetro fragment no resultado será uma string vazia.
-
Log bruto
content:https://username:username@example.com:8083/hello/asdah/;type=docx?filename=python3.docx#urllib -
Regra de transformação
e_set("url",url_parse(v("content"),allow_fragments=False)) -
Resultado
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": "" }
-
-
Exemplo 3: Defina scheme como https e allow_fragments como False. O valor do parâmetro scheme no resultado será https, e o valor do parâmetro fragment será uma string vazia.
-
Log bruto
content://username:username@example.com:8083/hello/asdah/;type=docx?filename=python3.docx#urllib -
Regra de transformação
e_set("url",url_parse(v("content"),scheme="https", allow_fragments=False)) -
Resultado
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
Interpreta os componentes de uma string de consulta de URL.
-
Sintaxe
url_parse_qs( url_qs, keep_blank_values=False, strict_parsing=False, encoding="utf-8", errors="replace", ignore_multi_fields=True, ) -
Parâmetros
Nome do parâmetro
Tipo de dados
Obrigatório
Descrição
url_qs
String
Sim
A string de consulta da URL a ser analisada.
keep_blank_values
Booleano
Não
Define se parâmetros com valores vazios devem ser retornados.
-
False (padrão): O valor não é retornado.
-
True: Retorna esses parâmetros e define seus valores como strings vazias.
strict_parsing
Booleano
Não
Define como tratar erros de análise.
-
True: Uma exceção ValueError é acionada.
-
False (padrão): Os erros são ignorados.
encoding
String
Não
Codec usado para decodificar caracteres codificados em porcentagem para Unicode. Padrão: utf-8. ASCII também é suportado.
errors
String
Não
Define como lidar com caracteres que não podem ser decodificados pelo codec especificado. Valores válidos:
-
ignore: Nenhuma ação é executada.
-
strict: Relata um erro e descarta a entrada de log.
-
replace (padrão): Substitui os caracteres não reconhecidos por um ponto de interrogação (?).
-
xmlcharrefreplace: Substitui os caracteres não reconhecidos pelas referências de caractere XML correspondentes.
ignore_multi_fields
Número
Não
Define se apenas o primeiro valor de cada parâmetro deve ser retornado.
-
True (padrão): Retorna apenas o primeiro valor de cada parâmetro. O valor é uma string.
-
False: Retorna todos os valores de cada parâmetro. Os valores são retornados em uma lista.
-
-
Resposta
Retorna JSON com os seguintes campos.
Parâmetro
Descrição
logType
Tipo de log.
uid
Identificador exclusivo do log.
time
Carimbo de data/hora do log.
msg
Conteúdo da mensagem de log.
-
Exemplos
-
Exemplo 1: Defina keep_blank_values como True. O resultado inclui parâmetros com valores vazios.
-
Log bruto
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 -
Regra de transformação
e_set("url",url_parse_qs(v("content"), keep_blank_values=True)) -
Resultado
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" }
-
-
Exemplo 2: Defina keep_blank_values com o valor padrão (False). O resultado não inclui parâmetros com valores vazios.
-
Log bruto
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 -
Regra de transformação
e_set("url",url_parse_qs(v("content"))) -
Resultados
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" }
-
-
Exemplo 3: Defina ignore_multi_fields com o valor padrão (True). Apenas o primeiro valor de cada parâmetro é retornado.
-
Log bruto
content:logType=net_log&uid=62452****&x=1&x=2&x=3&asb=123&asb=456 -
Regra de transformação
e_set("url",url_parse_qs(v("content"))) -
Resultado
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" }
-
-
Exemplo 4: Defina ignore_multi_fields como False. Todos os valores de cada parâmetro são retornados.
-
Log bruto
content:logType=net_log&uid=62452****&x=1&x=2&x=3&asb=123&asb=456 -
Regra de transformação
e_set("url",url_parse_qs(v("content"),ignore_multi_fields=False)) -
Resultado
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"] }
-
-