Analisador de User-Agent

Analisa strings de user agent em componentes

User-Agent String

|

Enter a User-Agent string to parse

O Parser de User-Agent extrai nome do navegador, versão, motor de renderização, sistema operacional e tipo de dispositivo de strings de cabeçalho User-Agent, decodificando o infame formato convoluto que acumulou décadas de tokens de compatibilidade. Cole uma string como Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 e obtenha um resumo claro: Chrome 120.0, motor Blink, Windows 10, Desktop.

Compreendendo Strings de User-Agent

O cabeçalho User-Agent é uma das partes mais antigas e mal compreendidas do HTTP. Foi originalmente projetado como um identificador simples -- um jeito do navegador dizer ao servidor seu nome e versão para que o servidor pudesse customizar sua resposta. O Netscape Navigator enviava Mozilla/1.0 e era isso. Mas décadas de guerras de navegador, hacks de compatibilidade e detecção de feature transformaram a string User-Agent em um emaranhado confuso de tokens históricos que dizem muito mais sobre a história de navegadores web do que sobre o cliente real que faz a requisição.

O problema começou quando Internet Explorer quis receber o mesmo conteúdo que servidores estavam enviando para Netscape Navigator. Então IE alegou ser "compatível com Mozilla". Depois Firefox veio como o verdadeiro sucessor de Mozilla e usou o mesmo prefixo. Safari adicionou "como Gecko" para que servidores verificando Gecko lhe servisse conteúdo moderno. Chrome copiou a string inteira de Safari e adicionou seu próprio token. Edge copiou a string de Chrome e adicionou outro token. O resultado é que o User-Agent de Chrome hoje contém "Mozilla", "AppleWebKit", "KHTML", "Gecko", "Chrome" e "Safari" -- e não é nenhum desses exceto Chrome.

Para desenvolvedores e administradores de sistema, o parsing de User-Agent ainda é necessário apesar de suas limitações. Análise de log de acesso requer saber quais navegadores e sistemas operacionais seus usuários executam. Detecção de bot depende de identificar crawlers como Googlebot e Bingbot. Relatórios de bug específicos de navegador precisam da versão exata para reproduzir. E análise de tráfego requer distinguir usuários móveis de desktop. Este parser corta o ruído histórico e extrai a informação que realmente importa: qual navegador, qual versão, qual SO, qual tipo de dispositivo.

Como Analisar uma String de User-Agent

  1. Cole uma string de User-Agent no campo de entrada (de logs de acesso, DevTools de navegador ou cabeçalhos HTTP).
  2. Clique em Analisar para extrair todos os componentes identificáveis.
  3. Revise os resultados analisados: família de navegador, versão, motor, SO, tipo de dispositivo e detecção de bot.

Exemplos de Parsing de User-Agent

String de User-AgentNavegadorVersãoMotorSODispositivo
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36Chrome120.0BlinkWindows 10Desktop
Mozilla/5.0 (Macintosh; Intel Mac OS X 14_2) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Safari/605.1.15Safari17.2WebKitmacOS 14.2Desktop
Mozilla/5.0 (X11; Linux x86_64; rv:121.0) Gecko/20100101 Firefox/121.0Firefox121.0GeckoLinuxDesktop
Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Mobile/15E148 Safari/604.1Safari Mobile17.2WebKitiOS 17.2Mobile
Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.43 Mobile Safari/537.36Chrome Mobile120.0BlinkAndroid 14Mobile
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)Googlebot2.1----Bot
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.2210.91Edge120.0BlinkWindows 10Desktop

Quando Usar o Parser de User-Agent

  • Analisando logs de acesso de servidor -- Analise strings de User-Agent de logs de web server para entender seu resumo de tráfego por navegador, SO e tipo de dispositivo.
  • Identificando tráfego de bot -- Detecte crawlers conhecidos (Googlebot, Bingbot, Baiduspider) e diferencie-os de tráfego humano em análise.
  • Debugando problemas específicos de navegador -- Extraia a versão exata de navegador e motor de renderização do User-Agent de um relatório de bug para reproduzir issues.
  • Testando lógica de detecção de navegador -- Valide que seu código de detecção de navegador server-side ou client-side identifique corretamente vários padrões de User-Agent.
  • Entendendo padrões de tráfego -- Determine a razão móvel vs. desktop e quais versões de SO seus usuários executam para informar prioridades de teste.
  • Análise de log de segurança -- Identifique strings de User-Agent suspeitas em logs de acesso que possam indicar ataques automatizados ou scraping.

Por Que Strings de User-Agent São Tão Confusas

O Histórico de Spoofing de Navegador

Todo navegador moderno começa seu User-Agent com Mozilla/5.0 devido a uma cadeia de hacks de compatibilidade histórica:

  1. Netscape Navigator (o Mozilla original) foi o primeiro navegador a introduzir o cabeçalho User-Agent e usou Mozilla/version.
  2. Internet Explorer alegou ser Mozilla/4.0 (compatible; MSIE...) para que servidores verificando "Mozilla" lhe enviasse o mesmo conteúdo rico.
  3. Firefox usou Mozilla/5.0... Gecko/... como sucessor de Netscape.
  4. Safari adicionou (KHTML, like Gecko) para que servidores procurando "Gecko" enviasse conteúdo moderno.
  5. Chrome copiou o token de Safari e adicionou seu próprio, resultando em uma string alegando ser Mozilla, como KHTML, como Gecko, Chrome e Safari simultaneamente.
  6. Edge (baseado em Chromium) adicionou Edg/ à string já comprida de Chrome.

O Que Cada Token Realmente Significa

Em um típico Chrome User-Agent:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
  • Mozilla/5.0 -- Token de compatibilidade histórica (sem sentido hoje)
  • Windows NT 10.0; Win64; x64 -- Sistema operacional e arquitetura
  • AppleWebKit/537.36 -- Versão do motor de renderização (valor congelado em Chromium)
  • KHTML, like Gecko -- Alegação de compatibilidade
  • Chrome/120.0.0.0 -- O navegador e versão reais
  • Safari/537.36 -- Outro token de compatibilidade (Chrome não é Safari)

Client Hints: A Alternativa Moderna

User-Agent Client Hints (cabeçalhos Sec-CH-UA-*) são o substituto moderno, fornecendo dados estruturados e de baixa entropia:

Sec-CH-UA: "Chromium";v="120", "Google Chrome";v="120"
Sec-CH-UA-Mobile: ?0
Sec-CH-UA-Platform: "Windows"

O parser reconhece ambas as strings de User-Agent legadas e valores modernos de Client Hints.

Mapeamento de Versão Windows

Versões Windows em strings de User-Agent usam números de versão NT interna que não correspondem a nomes de marketing:

Valor de User-AgentVersão Windows
Windows NT 10.0Windows 10 ou Windows 11
Windows NT 6.3Windows 8.1
Windows NT 6.2Windows 8
Windows NT 6.1Windows 7
Windows NT 6.0Windows Vista
Windows NT 5.1Windows XP

Note que Windows 10 e Windows 11 compartilham o mesmo valor Windows NT 10.0. Diferenciá-los requer User-Agent Client Hints (Sec-CH-UA-Platform-Version).

Dicas Práticas para Análise de User-Agent

Ao analisar logs de acesso, não tente analisar strings de User-Agent com expressões regulares. O formato é muito irregular e tem muitas variações para ser tratado de forma confiável com regex. Use uma biblioteca de parsing dedicada como ua-parser-js (JavaScript), user-agents (Python) ou browscap (PHP). Essas bibliotecas mantêm bancos de dados de padrões conhecidos e são atualizadas conforme novos navegadores e versões são lançados.

Para detecção de bot, lembre-se de que bots legítimos tipicamente se identificam claramente em suas strings de User-Agent, mas bots maliciosos quase sempre falsificam strings de navegador real. Se você ver um User-Agent alegando ser Chrome 120 em Windows 10 mas a requisição vem de um IP de data center, faz 100 requisições por segundo e ignora robots.txt, é quase certamente um bot independente do que o User-Agent diz. A detecção eficaz de bot combina análise de User-Agent com sinais comportamentais como taxa de requisição, reputação de IP e capacidades de execução de JavaScript.

A tendência no ecossistema de navegador é reduzir a informação em strings de User-Agent. Chrome tem gradualmente congelado partes de seu User-Agent (a versão WebKit está congelada em 537.36, a versão menor de Chrome é sempre .0.0.0) e empurrando desenvolvedores em direção a Client Hints para informação detalhada. Se você está construindo sistemas novos que precisam de informação de navegador ou SO, considere suportar Client Hints desde o início em vez de depender apenas de parsing tradicional de User-Agent, já que a quantidade de informação útil na string de User-Agent apenas diminuirá com o tempo.

Perguntas Frequentes

Como posso diferenciar Chrome de Edge?

Edge baseado em Chromium inclui um token Edg/ (note: não "Edge") no final de sua string de User-Agent. Ambos compartilham os mesmos tokens Chrome/ e Safari/. Procure especificamente por Edg/ para diferenciar Edge de Chrome.

É confiável detectar tipo de dispositivo do User-Agent?

Para categorias amplas (móvel vs. desktop), detecção de User-Agent é razoavelmente confiável. A presença de Mobile na string indica um dispositivo móvel. No entanto, detecção de tablet é menos consistente e alguns navegadores móveis em "modo desktop" enviam strings de User-Agent estilo desktop. Para detecção mais confiável, combine parsing de User-Agent com técnicas de design responsivo.

Como detecto bots e crawlers?

Bots legítimos tipicamente se identificam claramente: Googlebot, bingbot, Baiduspider, YandexBot, DuckDuckBot. O parser mantém uma lista de identificadores de bot conhecidos. No entanto, bots maliciosos frequentemente falsificam strings de User-Agent de navegador real, então User-Agent sozinho não é suficiente para detecção de bot crítica para segurança.

Por que Chrome relata "Safari" em seu User-Agent?

Chrome inclui Safari/537.36 por compatibilidade histórica. Quando Chrome foi lançado pela primeira vez, muitos sites verificavam "Safari" para servir conteúdo compatível com WebKit. Chrome herdou WebKit (mais tarde dividindo-o em Blink) e manteve o token Safari para evitar ser servido conteúdo degradado. É puramente um artefato de compatibilidade e não significa que Chrome está relacionado a Safari.

O que é a iniciativa "reduced User-Agent"?

Começando com Chrome 110, Google tem gradualmente reduzido a informação na string de User-Agent de Chrome como parte da iniciativa Privacy Sandbox. O objetivo é minimizar fingerprinting passivo congelando ou removendo números de versão granular, detalhes de SO e informação de modelo de dispositivo. Desenvolvedores que precisam dessa informação são encorajados a usar User-Agent Client Hints em vez disso, que requerem opt-in explícito do servidor e são mais preservadores de privacidade.

Posso confiar na versão de SO em uma string de User-Agent?

Geralmente sim para identificar a família de SO (Windows, macOS, Linux, iOS, Android), mas a versão específica pode estar congelada ou imprecisa. Chrome em Windows relata Windows NT 10.0 tanto para Windows 10 quanto Windows 11. Chrome em macOS pode congelar a versão em um valor específico. Para detecção precisa de versão de SO, use Client Hints ou métodos de detecção server-side.

Ferramentas Relacionadas

IPparse•Ferramentas Gratuitas de Rede e Calculadora de Sub-redes

© 2026 IPparse. All tools run locally in your browser.

100% Privacy-First • No Data Collected