Analyseur User-Agent
DévAnalyse une chaîne User-Agent en navigateur, moteur, système d'exploitation et type d'appareil. Heuristique, 100% côté client.
- Navigateur
- Moteur
- Système d'exploitation
- Type d'appareil
- Robot / crawler
Sur cette page
Qu’est-ce qu’un analyseur de User-Agent ?#
La chaîne User-Agent (UA) est la ligne de texte que tout navigateur et client HTTP ajoute à ses requêtes pour se décrire. C’est aussi un fameux fatras non structuré : les fournisseurs empilent les jetons de compatibilité historique les uns sur les autres, si bien qu’une seule chaîne Chrome moderne contient aussi les mots Mozilla, AppleWebKit, KHTML, Gecko et Safari — aucun ne signifiant que le navigateur est réellement l’un de ceux-là. Lire un UA brut à l’œil est lent et source d’erreurs, c’est pourquoi presque tout tableau de bord d’analytique, tout outil de journaux d’accès et toute couche de détection de bots le fait d’abord traverser par un analyseur.
Cette page prend n’importe quelle chaîne UA et la décompose en les cinq faits que vous voulez vraiment : navigateur (nom et version), moteur (le cœur de rendu), OS (système d’exploitation et version), type d’appareil (ordinateur, mobile ou tablette), et isBot (si la chaîne ressemble à un robot). Tout s’exécute dans votre navigateur — collez une chaîne tirée d’une ligne de journal et lisez le découpage, sans aller-retour serveur.
Si la détection de navigateur est plus dure qu’elle n’en a l’air, c’est à cause de l’ordre. Les navigateurs spécialisés doivent être testés avant Chrome, car leurs chaînes UA contiennent toutes le jeton littéral Chrome pour compatibilité. Microsoft Edge, Opera, Samsung Internet, Vivaldi et CocCoc seraient tous rapportés à tort comme Chrome par un naïf if (ua.includes("chrome")). Pareil pour les moteurs : la chaîne AppleWebKit apparaît à la fois dans les navigateurs Blink (Chrome, Edge, Opera) et dans ceux en WebKit pur (Safari), donc le moteur est inféré depuis la famille du navigateur, et non matché directement.
Comment l’utiliser#
- Cliquez sur Utiliser mon navigateur en haut pour charger le propre
navigator.userAgentde ce navigateur dans le champ d’entrée — la façon la plus rapide de voir à quoi ressemble votre propre trafic. - Ou collez n’importe quelle chaîne UA dans le panneau Entrée — issue d’un journal d’accès nginx, d’un
req.headers["user-agent"]dans votre backend, d’une requête curl, n’importe quoi. - Lisez les cinq lignes du panneau Sortie :
- Navigateur — nom de famille et version majeure (par ex.
Chrome 120). - Moteur — le moteur de rendu (Blink, WebKit, Gecko, Trident).
- OS — système d’exploitation et version quand récupérable (par ex.
Windows 10/11,iOS 17,Android 14). - Appareil —
desktop,mobileoutablet, inféré depuis des jetons commeiPad,AndroidsansMobile,iPhone. - Bot —
yes/no, signalé par correspondance contre des identifiants de robots (bot,crawl,spider,slurp,pingdom,headless,phantomjs,curl,wget,python-requests,axios…).
- Navigateur — nom de famille et version majeure (par ex.
- Cliquez sur Effacer pour vider les deux panneaux.
- La ligne d’état résume le résultat ou signale une entrée vide.
Fonctionnalités clés#
- Détection navigateur spécialisée d’abord. Edge, Opera, Samsung Internet, Vivaldi, CocCoc et Firefox sont tous matchés avant Chrome et Safari, donc ils ne sont pas silencieusement avalés par le jeton de compatibilité
Chrome. - Moteur inféré depuis la famille. Blink versus WebKit se décide depuis le navigateur détecté, et non par une correspondance directe fragile sur
AppleWebKit— c’est pourquoi une chaîne Safari n’est pas rapportée comme Chrome. - Classification du type d’appareil. Les tablettes se distinguent des téléphones via le jeton
iPadet la distinctionAndroid ... Mobile, les mêmes heuristiques dont dépendent les outils d’analytique. - Drapeau robot. La ligne
Botsignale les chaînes que vous voulez habituellement exclure des métriques humaines — robots de recherche, sondes de disponibilité, navigateurs headless et bibliothèques HTTP. - 100 % côté client. Aucun UA n’est jamais envoyé ailleurs. Cela signifie aussi que vous pouvez coller des jetons issus de journaux de production sans les fuiter vers une API d’analyse tierce.
Exemple commenté#
Collez cette chaîne typique de Chrome-sur-Windows tirée d’un journal d’accès :
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
et les cinq lignes se remplissent ainsi :
Browser Chrome 120
Engine Blink
OS Windows 10/11
Device desktop
Bot no
Comparez maintenant avec une chaîne Edge — notez le Edg/120 final :
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.0.0
Un analyseur naïf qui vérifie Chrome en premier rapporte ici Chrome 120 — faux. Cette page teste Edg/ avant Chrome/, donc la même chaîne donne correctement Browser : Microsoft Edge 120, avec le moteur toujours Blink (Edge est fondé sur Chromium).
Un troisième cas montre le chemin robot. Un script de contrôle de santé qui envoie curl/7.81.0 est signalé Bot : yes même s’il ne porte pas d’enveloppe Mozilla, parce que curl est l’un des jetons de bibliothèque que le matcher de robots scanne. C’est la ligne qui vous permet de séparer le trafic réel des utilisateurs du bruit automatisé quand vous lisez un journal à l’œil.
FAQ#
Pourquoi mon navigateur Edge se rapporte-t-il comme « Microsoft Edge » et non « Chrome », alors que l’UA contient le mot Chrome ?#
Parce que l’UA d’Edge inclut délibérément Chrome/120.0.0.0 pour que les sites bâtis pour servir Chrome servent aussi Edge. Cet analyseur teste le jeton Edg/ en premier, puis Chrome/, donc la famille spécialisée l’emporte. Tout analyseur qui n’ordonne pas ses vérifications ainsi rapportera toute dérivée Chromium comme Chrome.
Puis-je me fier à la version de l’OS issue d’une chaîne UA ?#
Jusqu’à un certain point. Windows replie 10 et 11 sur Windows NT 10.0, donc ils sont rapportés ici comme 10/11. Les versions iOS et macOS sont récupérables depuis le jeton OS X_x_x mais sont historiquement figées au moment de la sortie. Traitez la version comme un indice sérieux, pas comme une garantie, et ne basez pas de décisions de sécurité dessus.
Le drapeau Bot est-il assez fiable pour bloquer du trafic ?#
Non — la détection de robots fondée sur l’UA est un commodité pour l’analyse de journaux et le filtrage de tableaux de bord, pas une frontière de sécurité. Les clients malveillants forgent l’UA qu’ils veulent, y compris des UA parfaitement humains en apparence. Utilisez cette ligne pour repérer les robots et bibliothèques évidents ; utilisez limitation de débit, authentification et contrôles comportementaux pour tout ce qui doit réellement être digne de confiance.
L’analyseur affiche « Unknown » partout. Qu’ai-je collé ?#
Soit une chaîne vide/blancs, soit un UA d’un client que cet analyseur ne reconnaît pas (certaines applications de bureau et SDK envoient des identifiants sur mesure). La ligne d’état indiquera une entrée vide dans le premier cas ; dans le second, le navigateur et l’OS retombent simplement sur Unknown tandis que le type d’appareil prend par défaut desktop. La chaîne brute est préservée dans le panneau d’entrée pour que vous puissiez l’inspecter.