Analisador de User-Agent
Identifique navegador, engine, SO e dispositivo a partir de uma string User-Agent
Sobre esta ferramenta
Cole uma string de User-Agent de uma linha de log, de um relatório de bug ou de uma exportação de analytics e receba-a decodificada: navegador e versão, motor de renderização, sistema operacional, tipo de dispositivo e arquitetura de CPU. O parser é o ua-parser-js, a mesma biblioteca por trás de incontáveis pipelines de analytics, rodando localmente na sua string.
Strings de User-Agent são sítios arqueológicos — todas ainda afirmam ser Mozilla/5.0, o Chrome afirma ser Safari, o Safari afirma ser KHTML, e a identidade real se esconde nos tokens finais. Um parser é melhor que ficar apertando os olhos: ele sabe que "CriOS" significa Chrome no iOS e que o Edge se esconde atrás de "Edg/".
Note a direção do vento: navegadores estão congelando e reduzindo as strings de UA (e o Chromium envia UA Client Hints no lugar), então o detalhe de versão a partir do UA sozinho está cada vez mais grosseiro. Para forense de logs e triagem de bugs ele continua indispensável; para decisões de funcionalidade, use detecção de recursos.
Perguntas frequentes
- Por que todo User-Agent começa com Mozilla/5.0?
- Teatro de compatibilidade dos anos 1990 que nunca acabou: servidores farejavam "Mozilla" para servir páginas modernas, então todo navegador novo afirmava ser ele, e cada navegador seguinte imitou seus antecessores. O prefixo hoje é tradição sem significado.
- Posso confiar na versão do SO em uma string de UA?
- Cada ano menos. O macOS congelou sua versão de UA em 10_15_7, o Windows 11 se reporta como Windows NT 10.0, e navegadores com UA reduzido tornam as versões deliberadamente mais grosseiras. Trate versões de SO vindas do UA como aproximadas; use UA Client Hints onde você controla o cliente.
- O que significa "like Gecko" ou "KHTML, like Gecko"?
- Mais camadas de imitação: o WebKit descende do KHTML e queria que páginas com tratamento especial para o Gecko (o motor do Firefox) funcionassem, então acrescentou "like Gecko". Todo navegador WebKit/Blink carrega a frase até hoje.
- Devo usar parsing de UA para detecção de recursos?
- Não — sniffing quebra no momento em que uma nova versão de navegador é lançada. Detecte o próprio recurso (if ("clipboard" in navigator)). Parsing de UA serve para analytics, análise de logs e reprodução de bugs relatados por usuários, onde conhecer o ambiente é exatamente o objetivo.