También disponible en: English · Português · Français · العربية
Analizador de user agent
Cada campo etiquetado según cuánto refleja de tu máquina real: real, congelado, un mínimo, ambiguo, o un token que nombra a un navegador que no es este.
¿Qué es un analizador de user agent?
Cada petición que hace tu navegador lleva una cabecera User-Agent: una línea de texto que nombra el navegador, su versión y la máquina en la que corre. Un analizador de user agent la despieza y te dice qué pone. Los paneles de analítica, los registros del servidor y las páginas de descarga usan uno.
El problema es que esa línea dejó de ser cierta. Los navegadores llevan unos años sustituyendo sus partes concretas por constantes (el mismo valor mandado desde cualquier máquina) porque una cadena detallada es una manera excelente de reconocer a una persona de web en web. Lo que queda sigue pareciendo una descripción de tu ordenador y en su mayor parte no lo es.
Así que este analizador hace el trabajo de siempre y luego hace lo único que no hacen los demás: etiqueta cada campo según cuánto refleja de la máquina real. Real significa que salió de tu ordenador. Congelado significa que el navegador manda ese valor exacto a todo el mundo. Un mínimo significa que la verdad es ese número o uno mayor. Ambiguo significa que el valor es auténtico y aun así no identifica lo que nombra.
Cómo usarlo
- Pega una cadena User-Agent, o usa la tuya. El botón rellena lo que tu navegador está mandando ahora mismo. Las cadenas de un registro del servidor, de una exportación de analítica o de un informe de error funcionan igual.
- Lee la etiqueta que hay junto a cada campo, no solo el valor. Cada fila lleva una frase que explica por qué es fiable o por qué no, así que ves de un vistazo qué partes de una línea de registro merece la pena usar.
- Mira la lista de tokens de abajo. Enseña todos los navegadores y motores que la cadena dice ser, y marca el que es cierto de verdad. En una cadena moderna de Chrome es uno de cinco.
Dos navegadores congelan lo mismo por razones opuestas
Chrome redujo su User-Agent a propósito, y la forma que adoptó no es una conjetura: el motor construye la cadena a partir de una lista fija de valores de plataforma. Hay ocho, cinco de escritorio, así que para cualquier versión de Chrome existen exactamente cinco cadenas de esas en el mundo. Los números de compilación y parche se mandan como 0.0.0 desde Chrome 101. La versión de Android es la constante 10 y el modelo del dispositivo es la letra K, a secas.
Firefox congela la misma línea de Windows, y el comentario de su código da una razón completamente distinta. Escribe NT 10.0 a fuego para que Microsoft no pueda cambiar un valor sensible para la compatibilidad sin que Firefox esté de acuerdo antes. Eso es un veto de compatibilidad, no una medida de privacidad, y aterriza justo en el valor al que Chrome llegó desde el otro lado.
En Android los dos discrepan de verdad, y esta es la parte que ningún analizador enseña. Chrome manda Android 10 desde cualquier dispositivo. Firefox usa 10 como suelo: por debajo de 10 declara 10, y de 10 en adelante declara el número real, porque algunas webs corporativas rechazan a los clientes con versiones antiguas. Así que un Android 13 en una línea de registro es cierto si lo mandó Firefox e imposible si lo mandó Chrome, y Android 10 significa como mucho 10 en un navegador y no significa nada en el otro. El mismo token, dos sentidos, y cuál se aplica no se puede saber mirando el token.
El campo que más se cree es el menos informativo de todos. Un Chromebook declara la compilación 14541.0.0, demasiado concreta para parecer un relleno e idéntica en todos los Chromebook del planeta.
Límites honestos
Esta herramienta no puede recuperar lo que la cadena no contiene. Si pegas un User-Agent moderno de Chrome, ningún analizador del mundo (este incluido) puede decirte la versión de Windows, la de macOS, la de Android ni el dispositivo. No están escondidas detrás de un muro de pago ni de una expresión regular más lista. Sencillamente no están en la cadena.
El caso de Windows es el que conviene recordar, porque es donde todos los analizadores cometen el mismo error con toda seguridad. Windows 11 se sigue identificando como NT 10.0, así que un analizador que imprime Windows 10 está nombrando un sistema operativo que no puede distinguir del otro. Medido contra un analizador muy usado, todas las versiones de sistema que declara a partir de una cadena congelada de Chromium son constantes: dice Windows 10, Mac OS 10.15.7 y Android 10, y declara un modelo de dispositivo K. No se equivoca de ninguna manera que pudiera evitar: declara lo que dice la cadena.
Un User-Agent además lo declara el cliente, y siempre ha sido así. Cualquiera puede mandar lo que quiera: hay extensiones para cambiarlo, y el resultado de analizar una cadena inventada es una lectura fiel de una mentira. Trata lo que sale de cualquier analizador como lo que el cliente dijo, no como lo que el cliente es.
El sustituto previsto, una API que declara la misma información en piezas estructuradas, existe en los navegadores basados en Chromium y en ningún otro sitio. Firefox y Safari se han negado los dos a implementarla, y las posturas públicas de ambos motores dejan constancia del porqué. Así que para buena parte de los visitantes la cadena congelada no es un recurso heredado: es lo único que hay.
¿Por qué es gratis?
Porque no cuesta nada mantenerlo. El análisis ocurre en tu navegador; no se sube nada, ningún servidor ve la cadena y no hay cuenta de por medio.
Las reglas salen del código fuente de los dos motores que escriben estas cadenas, no de la documentación sobre ellos, y las pruebas que las comprueban están guardadas junto a la herramienta.