Analyseur User Agent

Collez n'importe quelle chaîne User-Agent et lisez le navigateur, le moteur de rendu, le système d'exploitation, la classe d'appareil et l'architecture CPU, avec une analyse JSON copiable.

Transformez une chaîne User-Agent en quelque chose de lisible. Votre propre User-Agent est chargé par défaut. Collez une autre chaîne pour voir comment elle se décompose, et copiez l'analyse JSON pour un rapport de bug ou un jeu de test.

Navigateur
Moteur
Système d'exploitation
Type d'appareil
Architecture CPU

Pourquoi les chaînes User-Agent ressemblent à cela

Trois décennies à prétendre être les uns les autres

Un User-Agent moderne n'est pas une description, c'est un fossile. Presque tout navigateur de bureau ouvre encore avec Mozilla/5.0, un jeton qui ne signifie plus rien depuis que Netscape a perdu la guerre des navigateurs. Il survit parce que les premiers serveurs détectaient Mozilla avant de servir des frames, si bien que chaque concurrent a ajouté le jeton pour éviter d'être rétrogradé. Dès qu'un navigateur ment pour obtenir la bonne version d'une page, les autres doivent mentir de façon identique ou perdre des utilisateurs.

La même spirale a produit le reste de la chaîne. Chrome envoie AppleWebKit/537.36 (KHTML, like Gecko) bien qu'il ait abandonné WebKit en 2013 et que KHTML soit mort depuis bien plus longtemps. Edge ajoute Edg/ plutôt que Edge/ précisément parce que trop de sites effectuaient une vérification de sous-chaîne sur l'ancien jeton et servaient un repli cassé. La vraie version de Safari se cache dans un jeton Version/ tandis que le Safari/537.36 final est figé. C'est pourquoi l'analyse doit être ordonnée du plus spécifique au moins spécifique : chaque fork Chromium prétend aussi être Chrome, et chaque navigateur WebKit prétend aussi être Safari, si bien que la première correspondance sûre doit l'emporter.

Ce que vous pouvez et ne pouvez pas croire

La chaîne est un en-tête fourni par le client, ce qui signifie que c'est un indice et jamais une preuve. Tout client HTTP peut envoyer n'importe quoi, et les utilisateurs la falsifient couramment via des extensions ou les outils de développement. Traitez-la comme une couleur de diagnostic dans un journal, pas comme une entrée d'autorisation ou une frontière de sécurité.

Même quand personne ne ment, les valeurs sont de plus en plus grossières. Chrome et Edge figent désormais les segments de version mineure à 0.0.0 et signalent une chaîne de plateforme réduite, si bien que Windows NT 10.0 couvre à la fois Windows 10 et Windows 11, et macOS est bloqué à 10_15_7 depuis des années quel que soit le système réel. Firefox arrondit ses détails système de la même façon. Si un numéro de version paraît suspectement rond, il l'est probablement.

La détection d'appareil est la partie la plus fragile. Il n'y a aucun champ appareil dans la chaîne ; il est déduit de la présence ou de l'absence de jetons comme Mobile, iPad ou Tablet. Les tablettes Android sont le piège classique, car beaucoup ne sont identifiées que par l'absence du jeton Mobile, et iPadOS se présente délibérément comme un Mac de bureau dans sa configuration par défaut.

Utilisez plutôt la détection de fonctionnalités, en grande partie

Pour tout ce qui change le comportement, testez la capacité plutôt que l'étiquette. if ('share' in navigator) est correct et durable ; if (isSafari) casse dès qu'un autre moteur propose la même API ou que Safari publie un correctif. Pour la mise en page, les requêtes média CSS décrivent le viewport réel et la méthode de saisie bien mieux qu'une supposition sur l'appareil.

Là où le User-Agent garde sa place, c'est pour les analyses, le triage des plantages et la reproduction des bugs. Savoir qu'une trace de pile n'apparaît que sur Gecko, ou qu'une rupture de mise en page se limite à Samsung Internet, transforme un rapport irréproductible en un cas de test précis. Le remplaçant moderne est l'API User-Agent Client Hints, qui expose les mêmes faits sous forme de valeurs structurées et nécessite une demande explicite pour les détails à haute entropie comme la version complète de la plateforme.

Note open-source : implémenté en JavaScript vanilla sans bibliothèque tierce.

FAQ

Pourquoi Chrome dit-il être Mozilla et Safari en même temps ?
Pour une compatibilité historique. Les serveurs détectaient autrefois Mozilla avant d'envoyer un balisage moderne, puis Safari avant d'envoyer du CSS spécifique à WebKit. Chaque navigateur a ajouté ces jetons pour éviter de se voir servir une page dégradée, et les retirer aujourd'hui casserait des sites qui vérifient encore.
Puis-je faire confiance au User-Agent pour des décisions de sécurité ?
Non. C'est un en-tête de requête entièrement contrôlé par le client et qui peut valoir n'importe quelle valeur. Utilisez-le pour les diagnostics et les statistiques uniquement. Tout ce qui contrôle l'accès ou applique une politique doit reposer sur l'authentification, pas sur une chaîne auto-déclarée.
Pourquoi ma version de macOS est-elle signalée comme 10.15.7 ?
Safari et Chrome figent délibérément la version de macOS signalée à 10_15_7 pour réduire la surface d'empreinte. Le navigateur connaît la vraie version mais ne la mettra pas dans l'en-tête. Client Hints peut l'exposer, mais seulement si le site le demande explicitement.
Comment l'outil distingue-t-il une tablette d'un téléphone ?
Il recherche un jeton iPad, une chaîne Android sans le jeton Mobile, ou un marqueur Tablet explicite. Cela reflète ce que font la plupart des bibliothèques, mais c'est intrinsèquement une heuristique. Certaines tablettes Android sont impossibles à distinguer des grands téléphones par la chaîne seule.
L'outil envoie-t-il mon User-Agent quelque part ?
Non. L'analyse s'exécute entièrement dans votre navigateur à l'aide d'expressions régulières, et rien n'est téléversé. La valeur par défaut est lue localement depuis navigator.userAgent et ne quitte jamais la page.
Que dois-je utiliser à la place de la détection User-Agent ?
La détection de fonctionnalités pour les capacités, les requêtes média CSS pour la mise en page, et l'API User-Agent Client Hints lorsque vous avez réellement besoin de faits sur la plateforme. Client Hints fournit des valeurs structurées et garde les détails à haute entropie derrière un accord explicite.