bitlvl
EN

User-agent parser

Paste a string from your logs, or use your own browser’s. The parser names the browser, engine, OS and device, and recognises search-engine, AI and tooling bots.

What a User-Agent string is

Every HTTP request carries a User-Agent header naming the software that sent it. Thirty years of browsers pretending to be each other made the format absurd: Chrome on Windows announces itself as Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36, claiming to be Mozilla, WebKit and Safari at once. Parsing means knowing which tokens matter: Edg/ beats Chrome/, Chrome/ beats Safari/, and Firefox/ stands alone.

What it no longer tells you

  • Chrome freezes the minor version (129.0.0.0) and the OS details (always “Windows NT 10.0”, always “Mac OS X 10_15_7”), a change called UA reduction. The full values are available only via Client Hints headers.
  • Windows 11 is indistinguishable from Windows 10.
  • Every iOS browser is WebKit, so “Chrome on iPhone” (CriOS/) is Safari's engine with Google's UI.

Bots

Well-behaved crawlers identify themselves and often include a URL: Googlebot/2.1 (+http://www.google.com/bot.html). The AI crawlers are now a large share of traffic: GPTBot (OpenAI training), ChatGPT-User (fetching for a user), ClaudeBot and Claude-User (Anthropic), PerplexityBot, Bytespider, CCBot (Common Crawl), meta-externalagent. Each can be allowed or blocked in robots.txt by name; this site's robots.txt allows them, because being cited by AI answers is part of the point.

Anything can set any User-Agent, so the string proves nothing. Scrapers copy Chrome's string; Googlebot's identity should be confirmed with a reverse DNS lookup of the IP (it must end in googlebot.com or google.com and resolve back).

Questions

How do I see my own user agent?

The field above is pre-filled with your browser’s string. You can also run navigator.userAgent in the console, or look at the request headers in the Network tab.

Can I trust the User-Agent for security decisions?

No. It is set by the client and freely spoofed. Use it for analytics, rough feature hints and friendly bot identification; use IP reputation, rate limits and reverse DNS checks for anything that matters.

Why does my analytics show Safari 605 or Chrome 537?

Those are WebKit build numbers (AppleWebKit/537.36, Safari/605.1.15) that never change, not browser versions. The browser version is after Version/ for Safari or Chrome/ for Chrome.

Should I block AI crawlers?

That depends on whether you want to appear in AI-generated answers. For a tools site, being cited is traffic. Training-only crawlers (GPTBot, Google-Extended, ClaudeBot) can be blocked separately from the on-demand fetchers (ChatGPT-User, Claude-User) that act for a person.