Technology fingerprinting
WhatWeb
Ruby web fingerprinter with 1800+ plugins that identifies CMSs, frameworks, servers, analytics, JavaScript libraries and versions.
7.0k stars · last push April 2, 2026 · v0.6.4 · GPL-2.0
What it finds
WhatWeb requests a website and matches the response against over 1800 plugins to name the CMS, web server, JavaScript libraries, analytics packages and embedded devices behind it. Plugins use text, regex, MD5 hashes, URL and HTML-tag patterns. An aggression level trades a single request against many extra requests for exact version detection.
- CMS and blogging platforms
- web servers
- JavaScript libraries
- analytics packages
- framework modules
- version numbers
- email addresses
- account IDs
- SQL errors
- embedded devices
Does it touch the target?
Sends traffic to the target's systems. Use only with the owner's permission.
The default aggression level (level 1) "is the fastest and requires only one HTTP request of a website." Level 3 "can make a handful of HTTP requests per target" and level 4 "Makes a lot of HTTP requests per target."
API keys: The README describes no API keys; fingerprinting is done from HTTP responses with local plugins.
Install
git clone https://github.com/urbanadventurer/WhatWeb.git
cd WhatWeb/From the project's documentation
make installFrom the project's documentation
gem install bundler
bundle update
bundle installFrom the project's documentation
How to run it
Examples use reserved documentation hosts such as example.com. Replace them with a domain you own or are authorised to test.
./whatweb example.comFrom the project's documentation
./whatweb -a 3 www.example.comFrom the project's documentation
whatweb --no-errors 192.0.2.0/24From the project's documentation
./whatweb --output-buffer-size=0 -t 10 --log-json=results.json targets.txtFrom the project's documentation
Output formats: brief, verbose, xml, json, json-verbose, magictree, ruby-object, sql, mongodb, elasticsearch
Limits the project documents
- "Level 3 aggressive plugins will guess more URLs and perform actions that are potentially unsuitable without permission."
- "WhatWeb has no caching so if you use aggressive plugins on redirecting URLs you may fetch the same files multiple times."
- With more than 100 threads, cookie handling "may impact performance"; use `--no-cookies`.
- Default User-Agent identifies the tool (`--user-agent` replaces "WhatWeb/0.6.3").
- MongoDB logging and charset conversion need optional gems; rchardet "slows performance" (wiki).
- "WhatWeb currently does not support any intrusion/exploit level tests in plugins."
Deepak's take
Analysis, not documentation
- Use it when
- Use it to identify the stack behind a specific site, especially when a version number matters. Raise aggression only on sites you are authorised to test.
- Skip it when
- For quick status and tech labels across thousands of hosts in a pipeline, httpx with `-tech-detect` is lighter. WhatWeb shines on depth per site.
- What it will miss
- It fingerprints only what the requested pages reveal, so it cannot find other hosts, subdomains or software hidden behind a proxy.
Facts read from the project's README and docs on November 10, 2026. Repository data as of November 11, 2026. Licence: GPL-2.0. WhatWeb is a trademark or project name of its owners; this library is not affiliated with it.