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
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
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
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.