A high performance port of the Wappalyzer Technology Detection Library to Go. Inspired by Webanalyze.
Uses data from https://github.com/AliasIO/wappalyzer
- Very simple and easy to use, with clean codebase.
- Normalized regexes + auto-updating database of wappalyzer fingerprints.
- Optimized for performance: parsing HTML manually for best speed.
- Added technology icons. The name of the icons is taken from the Simple Icons.
go install -v github.com/projectdiscovery/wappalyzergo/cmd/update-fingerprints@latest
After this command wappalyzergo library source will be in your current go.mod.
Usage Example:
package main
import (
"fmt"
"io"
"log"
"net/http"
wappalyzer "github.com/projectdiscovery/wappalyzergo"
)
func main() {
url := "https://www.hackerone.com"
resp, err := http.DefaultClient.Get(url)
if err != nil {
log.Fatal(err)
}
data, _ := io.ReadAll(resp.Body) // Ignoring error for example
wappalyzerClient, err := wappalyzer.New()
if err != nil {
log.Fatal(err)
}
technologies := wappalyzerClient.Fingerprint(url, resp.Header, data)
for _, technology := range technologies {
fmt.Println(technology)
}
}