Skip to content

A high performance go implementation of Wappalyzer Technology Detection Library

License

Notifications You must be signed in to change notification settings

elvin-tajirzada/wappalyzergo

 
 

Repository files navigation

Wappalyzergo

A high performance port of the Wappalyzer Technology Detection Library to Go. Inspired by Webanalyze.

Uses data from https://github.com/AliasIO/wappalyzer

Features

  • 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.

Using go install

go install -v github.com/projectdiscovery/wappalyzergo/cmd/update-fingerprints@latest

After this command wappalyzergo library source will be in your current go.mod.

Example

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)
	}
}

About

A high performance go implementation of Wappalyzer Technology Detection Library

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%