HandyTools Hub

User-Agent-Parser

Identifizieren Sie Browser, Betriebssystem und Gerät aus einem User-Agent-String

Jede Browser-Anfrage führt einen User-Agent-String mit, und die rohe Zeile ist mit bloßem Auge schwer zu lesen. Dieser Parser zerlegt jeden UA-String in beschriftete Fakten: Browser-Name und -Version, Betriebssystem, Gerätetyp, Hersteller und Rendering-Engine. Fügen Sie einen String aus einem Log oder einem Fehlerbericht ein, oder drücken Sie die Schaltfläche, um Ihren eigenen Browser zu analysieren und zu sehen, was Websites über Sie erfahren. Das Parsing findet in der Seite statt, der String wird also nirgendwohin gesendet.

Einen User-Agent-String lesen

Ein typischer Desktop-String sieht so aus:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36

Der Parser liest ihn als Browser Chrome 120.0.0.0, OS Windows 10, Gerät desktop, Engine Blink. Ein großer Teil des Strings ist historisch: Das führende Mozilla und das abschließende Safari-Token existieren, damit alter Browser-Sniffing-Code weiter funktioniert, und keines von beiden bedeutet, dass der Browser tatsächlich Mozilla oder Safari ist. Die aussagekräftigen Hinweise sind das Plattform-Token in Klammern und die abschließenden Produkt-Tokens, die den Browser und seine Version benennen.

Eine kurze Geschichte des Mozilla-Tokens

Das Wort Mozilla am Anfang fast jedes User Agents ist ein Relikt. Der Browser von Netscape trug den Codenamen Mozilla, und als andere Browser aufkamen, kopierten sie das Token, damit Server, die „Mozilla bedeutet moderner Browser“ annahmen, sie nicht abwiesen. Microsoft wählte „Mozilla/4.0 (compatible; MSIE…)“, um solche Prüfungen zu bestehen, und Chrome fügte später aus demselben Grund sowohl Mozilla als auch Safari hinzu. Das Ergebnis ist, dass die führenden Tokens keine verlässliche Information tragen. Lesen Sie den String von der Plattform in Klammern nach außen, und vertrauen Sie dem letzten Produkt-Token — dem Browser-Namen und der Version — mehr als allem davor.

Was die einzelnen Felder bedeuten

FeldWas es meldetBeispiel
BrowserBrowser oder benannter Crawler plus VersionChrome 120.0.0.0
OSBetriebssystem und VersionWindows 10
Gerätdesktop, mobile, tablet oder botmobile
HerstellerHardware-Hersteller, sofern erkennbarApple
EngineName der Rendering-EngineWebKit

Windows-NT-Versionen werden auf vertraute Namen abgebildet: 10.0 wird zu 10, 6.3 zu 8.1, 6.2 zu 8, 6.1 zu 7, 5.2 und 5.1 zu XP und 5.0 zu 2000. Das Engine-Feld meldet die Laufzeitumgebung, die Markup in Pixel verwandelt — Blink für Chromium-basierte Browser, WebKit für Safari, Gecko für Firefox und Trident für den alten Internet Explorer.

Praxisbeispiele

  1. Der obige Chrome-String wird zu Chrome 120.0.0.0, Windows 10, desktop, Blink, mit Hersteller Unknown.
  2. Mozilla/5.0 (iPhone; CPU iPhone OS 17_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.1 Mobile/15E148 Safari/604.1 wird zu Safari 17.1, iOS 17.1, mobile, Hersteller Apple, Engine WebKit.
  3. Mozilla/5.0 (Linux; Android 13; SM-X700) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 wird zu Chrome 119.0.0.0, Android 13, tablet, Hersteller Samsung, Engine Blink, weil der Android-String kein Mobile-Token enthält.
  4. Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) wird zu Googlebot 2.1, Gerät bot, Hersteller Google, mit OS und Engine Unknown, weil kein passendes Token vorhanden ist.
  5. Ein Edge-String wie 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 wird als Edge gemeldet, nicht als Chrome, obwohl er das Chrome-Token enthält.

Wie die Erkennungsreihenfolge funktioniert

Bots werden vor Browsern geprüft, mit Mustern für Googlebot, Bingbot, Baiduspider und YandexBot; ein Bot, der auch wie Chrome aussieht, wird trotzdem als Bot gemeldet. Danach laufen die Browser-Muster in dieser Reihenfolge: Edge, Opera, Internet Explorer, Chrome, Safari, Firefox. Die Reihenfolge ist wichtig, weil ein Edge-String auch Chrome und ein Chrome-String auch Safari enthält. Die Geräteklassifizierung läuft bot, dann tablet, dann mobile, dann desktop, sodass Tablet-Marker gegenüber den generischen Android- oder Mobile-Tokens gewinnen. Die OS-Muster laufen iOS, Android, Windows Phone, Windows, macOS, Linux, dann Chrome OS.

Grenzen und Spoofing

Der User Agent ist selbst gemeldet, jeder Client kann also behaupten, jeder Browser zu sein — Bots geben sich routinemäßig als Chrome aus, und Datenschutz-Erweiterungen ändern den String absichtlich. Der Parser arbeitet regex-basiert mit einer festen Musterliste, daher liefern Nischen- oder brandneue Browser Unknown zurück, und die Engine-Version wird nie extrahiert. Windows 11 meldet Windows NT 10.0 und erscheint deshalb als Windows 10. Ein iPad der Desktop-Klasse erscheint als Mac. Die Herstellererkennung deckt gängige Telefon- und Tablet-Marken ab, lässt aber viele Desktops unidentifiziert. Nutzen Sie die Ergebnisse zum Debuggen, für die Log-Analyse und aus Neugier, und kombinieren Sie sie mit Feature-Detection, wenn eine Entscheidung tatsächlich von Browser-Fähigkeiten abhängt.

Praktische Anwendungen

  • Einen Fehler reproduzieren, der für eine bestimmte Browser- und OS-Kombination gemeldet wurde.
  • Server-Logs auswerten, um zu sehen, welche Browser und Crawler tatsächlich zugreifen und in welchem Anteil.
  • Prüfen, was Ihr eigener Browser jeder geladenen Website verrät.
  • Gespeicherte User-Agent-Strings prüfen, bevor Sie sie einer Testsuite hinzufügen.
  • Bestätigen, dass ein erwarteter Bot die Identität präsentiert, die er vorgibt.

Verwandte Tools

Häufig gestellte Fragen

Wie unterscheidet der Parser Edge von Chrome?

Edge-User-Agents enthalten sowohl das Wort Chrome als auch ein Edg-Token. Der Parser prüft seine Browser-Muster in einer festen Reihenfolge und testet Edge zuerst, sodass ein Edge-String als Edge eingeordnet wird und nicht auf Chrome durchfällt.

Warum wird die Engine-Version immer als Unknown angezeigt?

Der Parser identifiziert die Rendering-Engine am Namen (Blink, WebKit, Gecko oder Trident), extrahiert aber keine Engine-Versionsnummer aus dem String. Dieses Feld bleibt daher konstruktionsbedingt Unknown.

Wie entscheidet er, ob ein Gerät ein Tablet und nicht ein Smartphone ist?

Er sucht zuerst nach Tablet-Markern wie iPad, Tablet, PlayBook und Silk. Außerdem behandelt er einen Android-User-Agent ohne das Wort Mobile als Tablet, weil Android-Tablets dieses Token typischerweise weglassen, während Smartphones es enthalten.

Warum erscheint ein iPad mit iPadOS 13 oder neuer als Mac?

Neuere iPadOS-Versionen fordern standardmäßig Desktop-Websites an, sodass Safari einen Macintosh- und Mac-OS-X-User-Agent statt eines iPad-Tokens sendet. Der Parser sieht keinen Tablet-Marker und ordnet das Gerät als Desktop-Mac ein. Das ist eine Grenze des User-Agent-Parsings, kein Fehler.

Warum ist der Gerätehersteller bei meinem Desktop-Browser Unknown?

Die Herstellererkennung konzentriert sich auf Mobil- und Tablet-Hardware. Desktop-User-Agents nennen meist keinen Hersteller, daher meldet das Herstellerfeld Unknown, während Betriebssystem- und Browserfeld weiterhin gefüllt sind.

Kann ich den User Agent zuverlässig zum Blockieren von Bots verwenden?

Nein. User Agents sind selbst gemeldet und trivial zu fälschen, und dieser Parser erkennt nur eine kleine Gruppe benannter Crawler. Betrachten Sie das Ergebnis als Hinweis für die Analyse, nicht als Sicherheitskontrolle, und kombinieren Sie es mit Verhaltens- oder Netzwerksignalen.

Geprüft vom HandyTools-Hub-Team · Zuletzt aktualisiert