AP Scanner
Real-time wireless access point scanner with active reconnaissance for Linux.
Features
Passive Scanning
- Real-time AP discovery with terminal display
- Automatic channel hopping (2.4GHz / 5GHz / 6GHz)
- Security detection: WEP, WPA, WPA2, WPA3
- WiFi standard detection: 802.11 a/b/g/n/ac/ax
- Channel width detection (20/40/80/160 MHz)
- Hidden SSID detection and resolution
- MAC vendor lookup
- Band filtering and sort modes
Active Scanning (New!)
- Interactive AP selection with arrow keys
- Connect to open (OPN) networks for reconnaissance
- DHCP lease acquisition and network info extraction
- ARP scan to discover connected clients
- Gateway port scanning (22, 53, 80, 443, 8080, 8443)
- Client device enumeration with MAC vendor lookup
- Results displayed in overlay panel
Export & Configuration
- CSV / JSON export with active scan results
- Configuration file support
Requirements
- Python 3.10+
- Linux with
iwandipcommands - Root privileges
- WiFi adapter that supports monitor mode
Installation
From PyPI (recommended)
# Using pipx (isolated environment)
pipx install uaf
# Or using pip
pip install uaf
From source
git clone https://github.com/devastator-x/uaf.git
cd uaf
pip install -e .
Ubuntu/Debian (.deb package)
# Download from releases
wget https://github.com/devastator-x/uaf/releases/download/v1.0.0/uaf_1.0.0_all.deb
sudo dpkg -i uaf_1.0.0_all.deb
sudo apt-get install -f # Install dependencies
Usage
# Basic scan (auto-detect interface)
sudo uaf
# Specify interface
sudo uaf -i wlan0
# Scan specific channels
sudo uaf -c 1,6,11
# Band filter
sudo uaf -b 2.4
# Sort by channel
sudo uaf --sort channel
# Save to specific file
sudo uaf -w output.csv
# Use config file
sudo uaf --config /path/to/config.ini
Keybindings
Normal Mode
| Key | Action |
|---|---|
q |
Quit |
w |
Write CSV |
j |
Write JSON |
b |
Cycle band filter (All / 2.4GHz / 5GHz / 6GHz) |
s |
Cycle sort mode (RSSI / Channel / ESSID / ENC) |
Enter |
Enter AP selection mode |
Selection Mode
| Key | Action |
|---|---|
↑ / ↓ |
Navigate through AP list |
Enter |
Run active scan on selected open AP |
Esc |
Exit selection mode |
Configuration
Default config path: ~/.config/ap-scanner/config.ini
[scanner]
interface = wlan0
band = all
sort = rssi
no_color = false
verbose = false
Development
pip install -e ".[dev]"
pytest tests/ -v
License
GPL-2.0-or-later. See LICENSE for details.
Metadata
Release files for uaf 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| uaf-1.0.1.tar.gz | 44.2 kB | Without provenance | Details for uaf-1.0.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| uaf-1.0.1-py3-none-any.whl | Python 3 | none | any | Details for uaf-1.0.1-py3-none-any.whl |
Total release size: 83.4 kB
Release files / uaf-1.0.1.tar.gz
| Download URL | uaf-1.0.1.tar.gz |
|---|---|
| Size | 44.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e4b7fffc560a7c313c97ed332069ff9367e3b2c676fb88f908540173b2e13326
|
|
BLAKE2b-256 checksum How to use checksums |
ac096bb68ac2bae4f42766263d2109c40864f42f2dc2e56bb5f85a490bcbdfed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / uaf-1.0.1-py3-none-any.whl
| Download URL | uaf-1.0.1-py3-none-any.whl |
|---|---|
| Size | 39.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a455a9eb7a5b9de765992d2326741a1a7fe242160cbb40c6343a58e6792142a3
|
|
BLAKE2b-256 checksum How to use checksums |
ef0a02e09cebd2c39c1dee6f6fbd54d8bc3fb2b654d69e44686394fec74bd6ae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Security for uaf 1.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.