User Agent Parser
Paste any user-agent string — from a log line, a bug report, an analytics row — and read what it actually says: browser and version, engine, operating system, device class. Or inspect your own browser's with one click. Decoded by ordered rules in your tab, not by a fingerprinting service.
An archaeology of one line
A user-agent string is sediment: every era of the browser wars left a layer, and none could be removed without breaking some server that checked it. The result reads like nonsense — a Windows Chrome claiming to be Mozilla, KHTML, Gecko and Safari at once — until you know which token was deposited when, and then it reads like history.
The parser here applies that history as rules: derivatives before trunks, Version/ for Safari, platform from the parenthesis. The same rules work on a log file's worth of strings — which is what the paste box is for.
Frequently asked questions
Why does every user agent start with Mozilla/5.0?
Thirty years of compatibility theatre. Servers once gated features on 'Mozilla', so every new browser claimed to be it, then claimed to be the next incumbent too — which is why Chrome's string also contains Safari and AppleWebKit. The prefix carries no information at all; the truth hides in the later tokens.
Why must Edge be detected before Chrome?
Because Edge's string contains everything Chrome's does, plus 'Edg/'. Test for Chrome first and every Chromium derivative — Edge, Opera, Samsung Internet, Yandex — reads as Chrome. Ordered rules are the whole craft of UA parsing, and this page's order is visible in its results.
Can a user agent lie?
Freely — it is a self-declaration, one devtools dropdown away from being anything. Worse, modern browsers deliberately freeze parts of it: macOS is pinned at 10.15 in WebKit strings, Windows 11 still says NT 10.0. Read it as a claim, useful for logs and support, never as proof.
What replaced user agents for feature decisions?
Feature detection: ask the browser whether an API exists rather than who it is. UA strings remain right for statistics, debugging a user's report, and serving legal notices to crawlers — the jobs where knowing the family and version genuinely matters.
Related tools
- IP Subnet CalculatorCIDR to everything: network, broadcast, usable range, host count, mask and wildcard in dots and binary — plus the tightest prefix for a host count.
- What Is My IPYour public IP address, network location and connection details — fetched once from Cloudflare's trace endpoint, shown plainly, logged nowhere.
- DNS LookupA, AAAA, MX, TXT, CNAME, NS and more for any domain — queried over encrypted DNS (DoH), with TTLs shown the way an operator reads them.