Detect the user-agent string that web servers and client codes see when you are visiting a website. Usually, this string is used by the website owner to facilitate the end user experience, however, it can also be used to identify the user.
This website uses a few innovative techniques to aggressively detect the real user-agent that your browser exposes. Simply choose a desired technique from the "Method" dropdown list and see the corresponding user-agent string in the table below. The results are rendered with three different user-agent string parser libraries (in separate tabs). Please click on the desired tab to see the detailed of the user-agent string. Also note that, if you are using a user-agent spoofing extension, our different detection mechanisms will try to bypass the spoofing and reveal the real user-agent string.
- [normal] navigator.userAgent: This method reads the navigator object when the page load is finished. This is the most common method to detect the user's actual user-agent string.
- [aggressive] navigator.userAgent: This method clones the "navigator" object exactly when page is about to render to prevent any external scripts from altering it later. It is pretty hard to bypass this method as the spoofer does not have enough time to asynchronously get the faked user-agent string at this point.
- [aggressive] navigator.appVersion: This method uses the "appVersion" property and converts it to the actual user-agent string in Chromium-based browsers. Since Firefox does not support this method, it is not available for this browser.
- [aggressive] UA Header: This method observes the request headers that are sent from your browser and reads the "user-agent" header of a request. Normally web pages do not have access to this information, however, by registering a service worker, it is possible to monitor outgoing traffic from a web page.
- [aggressive] iframe navigator.userAgent: Same as method 2, however, uses a newly created sandboxed iframe to prevent any script from being able to manipulate the "navigator" object.
- [aggressive] iframe navigator.appVersion: Same as method 5, instead uses the <code>appVersion</code> property.
API Reference:You can use the following URL arguments to customize how the page is shown. Note this this page locally persists the last used method and the last visited tab locally for later use.
- method: Could be one of "ug", "ua", "av", "uah", "fua", "fav" values which indicates the default method that is used to detect the user-agent string.
- tab: Could be one of "navigator", "ua_praser", "platform_js" which indicates the default rendering engine that is used to display the results.
- verbose: Could be one of "true" or "false" values which indicates whether the page uses all methods or just the active one. If all methods are used and if there is an inconsistency in the results, then the user will be warned.
Related Blog Posts
- Anti-Tracking Issues in Browsers: Third-party cookie policies of 7 major web browsers, 14 anti-tracking extensions, and 31 ad-blockers had been analyzed by a team of Belgian researchers from KU Leuven. They discovered the minor and major issues with all of them...
- Effectiveness of Fingerprinting Countermeasures: A common technique that is used by organizations and websites is fingerprinting. It is either done on its own or through a complementary method to identify and track internet users...