Automated WiFi network scanning and analysis tool using airodump-ng with TypeScript.
- 🔄 Automated WiFi network scanning
- 📊 Local JSON database for aggregating scan results
- 🎯 Track unique networks and clients over time
- 📈 Statistics and reporting
- 🔧 Environment variable configuration for interface names
- 🚀 Easy-to-use CLI commands
- Ubuntu/Linux system
- WiFi adapter capable of monitor mode
aircrack-ngsuite installed- Node.js and Yarn
# Install aircrack-ng
sudo apt-get install aircrack-ng
# Install Node.js and Yarn
sudo apt-get install nodejs yarn-
Install dependencies:
npm install
-
Configure your WiFi interface:
Option A: Using .env file (recommended):
# Copy the example file cp .env.example .env # Edit .env and set your interface # WIFI_INTERFACE=wlxc83a35ca40e1
Option B: Using environment variable:
# Find your WiFi interface name ip link show # or iwconfig # Set the environment variable export WIFI_INTERFACE=wlxc83a35ca40e1 # Replace with your interface
-
Build the project:
yarn build
Run a 60-second scan (default):
yarn scanQuick 30-second scan:
yarn scan:quickLong 5-minute scan:
yarn scan:longCustom duration:
yarn build && node dist/automate.js scan 120View statistics:
yarn stats- ✅ Automatically switches your WiFi interface to monitor mode
- 📡 Runs airodump-ng for the specified duration
- 📄 Parses the CSV output files
- 💾 Saves results to a local JSON database (
wifi-scan-db.json) - 📊 Aggregates unique networks and clients across all scans
- 🔄 Automatically switches back to managed mode when done
The scanner maintains a wifi-scan-db.json file with:
- Scans history: All scan sessions with timestamps
- Unique networks: Deduplicated networks by BSSID
- Unique clients: Deduplicated clients by MAC address
All manual commands now support environment variables with fallback:
# Interface control
yarn up # Bring interface up
yarn down # Bring interface down
yarn info # Show interface info
# Mode switching
yarn managed # Switch to managed mode
yarn monitor # Switch to monitor mode
# Manual scanning
yarn sniff # Start airodump-ng manually
# Specific network capture
yarn capture # Capture specific network (configured in package.json)
# Password cracking
yarn verify # Verify capture has handshakes
yarn try-to-crack # Attempt to crack with rockyou.txt| Variable | Description | Default |
|---|---|---|
WIFI_INTERFACE |
WiFi interface name | wlxc83a35ca40e1 |
Tip: Create a .env file (see .env.example) or export the variable in your shell profile.
captures/scan-*.csv- Raw airodump-ng CSV fileswifi-scan-db.json- Aggregated database of all scansdist/- Compiled TypeScript files
📡 Starting WiFi scan for 60 seconds...
Interface: wlxc83a35ca40e1
Output: /home/user/wifi-explorer/captures/scan-2025-12-02T10-30-45
.....................
✅ Scan completed
📄 Parsing scan results...
Found 23 networks
Found 45 clients
📊 Database updated:
Total scans: 5
Unique networks: 67
Unique clients: 142
================================================================================
📊 SCAN SUMMARY
================================================================================
🌐 Networks:
--------------------------------------------------------------------------------
MyHomeNetwork | AA:BB:CC:DD:EE:FF | Ch: 6 | Pwr: -45 | WPA2
NeighborWiFi | 11:22:33:44:55:66 | Ch: 11 | Pwr: -67 | WPA2
...