Ga naar de hoofdinhoud

Parse een user-agentstring

Een user-agentparser leest de tokens in een User-Agent-header en zet ze om in gestructureerde velden. Hieronder gaan drie vaste strings — een desktopbrowser, een telefoon en een zoekmachinecrawler — door dezelfde parser als het interactieve hulpprogramma, gevolgd door de regels die hij toepast.

Uitgewerkt voorbeeld

Chrome op Windows
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Browser
Chrome 120.0.0.0
Engine
Blink
Besturingssysteem
Windows 10/11
Apparaatklasse
Desktop
Apparaat
Onbekend
CPU-architectuur
x64
Bot / crawler
Nee
Safari op iPhone
Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1
Browser
Safari 17.0
Engine
WebKit
Besturingssysteem
iOS 17.0
Apparaatklasse
Mobiel
Apparaat
Apple iPhone
CPU-architectuur
Onbekend
Bot / crawler
Nee
Googlebot (smartphonecrawler)
Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.216 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Browser
Chrome 120.0.6099.216
Engine
Blink
Besturingssysteem
Android 6.0.1
Apparaatklasse
Bot
Apparaat
Nexus 5X Build/MMB29P
CPU-architectuur
Onbekend
Bot / crawler
Googlebot

Chrome op Windows stuurt Windows NT 10.0, dat Windows 10 en Windows 11 gemeen hebben, dus het OS wordt weergegeven als 10/11. Op de iPhone levert Version/17.0 de Safari-versie en iPhone OS 17_0 de iOS-versie. De Googlebot-string bevat een volledige user agent van Chrome op Android, maar crawlersignaturen worden eerst gecontroleerd, dus de apparaatklasse is bot; de browser- en OS-velden tonen nog steeds waarvoor de crawler zich uitgeeft.

Belangrijkste regels

  • Crawlersignaturen worden eerst gecontroleerd: Googlebot, Bingbot, DuckDuckBot, YandexBot, Baiduspider, Slackbot, Twitterbot en facebookexternalhit. Bij een match wordt de apparaatklasse bot, ook als er browsertokens aanwezig zijn.
  • Browsers worden in een vaste volgorde herkend — Edge (Edg/), Opera (OPR/), Samsung Internet, Firefox, Chrome, Safari en daarna Chromium — omdat de meeste strings ook de tokens van andere browsers bevatten. De engine volgt uit de browser: Blink, Gecko of WebKit.
  • Het besturingssysteem komt uit het platformgedeelte tussen haakjes: iPhone, iPad, Android, Windows NT, CrOS, Mac OS X of Linux. Underscores in Apple-versienummers worden omgezet in punten.
  • De apparaatklasse is tablet bij iPad, een Tablet-token of Android zonder Mobile-token; mobiel bij iPhone of Android met een Mobile-token; en desktop bij Windows, macOS, Linux en ChromeOS.
  • Alles wat de string niet vermeldt, blijft onbekend (null in de JSON-uitvoer) in plaats van te worden gegokt. Het vertrouwen is alleen hoog als zowel een browser als een besturingssysteem is herkend.
  • Elke client kan een Googlebot-user-agent sturen. Om een echte Google-crawler te bevestigen, doe je een reverse DNS-lookup op het IP-adres van het verzoek, controleer je of de naam eindigt op googlebot.com of google.com en bevestig je dat met een forward lookup.

Meer gidsen over user agents