User-Agent Analyzer
Known limitations
Automation frameworks that drive a real browser (Selenium, Puppeteer, Playwright) are detected here only when their name literally appears in the User-Agent string — which happens in some configurations but not the default one for any of them. By default, all three drive a real, unmodified browser and produce a UA string indistinguishable from a human using that same browser; there is no reliable way to detect that from the UA string alone. Headless Chrome is reliably detectable, since Chrome itself includes "HeadlessChrome" in the string when run headless. "Obsolete browser" flags only cover definitively end-of-life browsers (Internet Explorer, legacy pre-Chromium Edge, legacy Opera) — an old but still-supported version of a current browser is reported with its version number but not flagged, since "how old is too old" changes constantly and hardcoding a cutoff here would just go stale.