You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1.5 KiB

Wappalyzer core

Wappalyzer identifies technologies on websites.

Installation

$ npm i wappalyzer-core

Usage

#!/usr/bin/env node

const fs = require('fs')
const Wappalyzer = require('./wappalyzer')

// See https://github.com/wappalyzer/wappalyzer/blob/master/README.md#specification
const categories = JSON.parse(
  fs.readFileSync(path.resolve(`./categories.json`))
)

let technologies = {}

for (const index of Array(27).keys()) {
  const character = index ? String.fromCharCode(index + 96) : '_'

  technologies = {
    ...technologies,
    ...JSON.parse(
      fs.readFileSync(path.resolve(`./technologies/${character}.json`))
    ),
  }
}

Wappalyzer.setTechnologies(technologies)
Wappalyzer.setCategories(categories)

Wappalyzer.analyze({
  url: 'https://example.github.io/',
  meta: { generator: ['WordPress'] },
  headers: { server: ['Nginx'] },
  scriptSrc: ['jquery-3.0.0.js'],
  cookies: { awselb: [''] },
  html: '<div ng-app="">',
}).then((detections) => {
  const results = Wappalyzer.resolve(detections)

  console.log(results)
})

Here's a shell script to download all of the necessary files referenced in the above example:

http --follow https://raw.githubusercontent.com/wappalyzer/wappalyzer/master/src/categories.json > categories.json
http --follow https://github.com/wappalyzer/wappalyzer/archive/refs/heads/master.tar.gz | tar -xz --strip-components=2 'wappalyzer-master/src/technologies'