Skip to main content

Wifi AP scanner tool

Project description

dt_apscanner

Command Line Access Point (AP) scanning tool

Overview:

This python utility will scan for network Access Points (APs) using underlying OS utilities and list related AP information.

  • Supports Linux and Windows.
  • Output options include: formatted (default), csv and json

Install:

pip install dt-apscanner

or for source code:

git clone https://github.com/JavaWiz1/dt-apscanner.git

Note: poetry is used for dependency management and packaging

Usage:

usage: dt_apscanner [-h] [-i <iface>] [-r] [-j] [-c] [-v] [--nmcli] [--iwlist] [--iw] [--netsh]

Scan for wi-fi access points (Networks)

options:
  -h, --help            show this help message and exit
  -i <iface>, --interface <iface>
                        (Linux only) Interface to use, default=wlan0
  -r, --rescan          (Windows only) force network rescan for APs
  -j, --json            Output json result
  -c, --csv             Output csv result
  -v, --verbose         Debug/verbose output to console
  --nmcli               Force Linux Network Manager discovery
  --iwlist              Force Linux iwlist discovery
  --iw                  Force Linux iw discover
  --netsh               Force Windows netsh discovery

This utility will scan for network APs (Access Points) using underlying OS utilities
and list related information.

- Supports Linux and Windows.
- Output options include: formatted (default), csv and json

Examples:

Windows - trigger re-scan to get most current list of access points

> dt_apscanner -r
===========================================================
==                  dt_apscanner v0.1.2                  ==
===========================================================
==        Scan for wi-fi access points (Networks)        ==
===========================================================

Validate command line options
- 1 Wifi adapter(s) detected: Wi-Fi
- "Wi-Fi" will be used to scan via 802.11ac [99%]
- Windows Scanner netsh selected

Rescan requested
- Autoconnect enabled for MyLAN1
- Disconnect to trigger re-scan of network

Scan for access points (WindowsWiFiScanner)
- Executing: netsh wlan show network mode=bssid

Process results of scan
- 5 APs discovered

SSID                      Auth            Encryption Mac Address       Signal Radio    Band    Channel
------------------------- --------------- ---------- ----------------- ------ -------- ------- -------
MyLAN1                    WPA2-Personal   CCMP       0c:9a:91:2c:bb:28   99%  802.11n  Unknown       3
                                                     0c:9a:91:2c:bb:2c   99%  802.11ac Unknown      36
NETGEAR99                 WPA2-Personal   CCMP       b0:41:a0:85:0f:d6   99%  802.11n  Unknown       3
**hidden**                WPA2-Enterprise CCMP       dc:eb:62:0a:b0:8b   33%  802.11n  Unknown       1
                                                     42:f1:9a:6d:5c:7b   21%  802.11n  Unknown       1
                                                     22:47:5c:fa:01:39   18%  802.11ac Unknown       6
Nirvana                   Open            None       f4:cf:b2:ac:bd:b1   58%  802.11n  Unknown       1
ThePond                   WPA2-Personal   CCMP       7c:80:26:01:70:de   51%  802.11n  Unknown       1

Linux - Use wlan2 connection for scan and use Network Manager (nmcli) for discovery

> dt_apscanner -i wlan2 --nmcli
===========================================================
==                   dt_apscanner v0.1.1                   ==
===========================================================
==        Scan for wi-fi access points (Networks)        ==
===========================================================

Validate command line options
- 1 Wifi adapter(s) detected: wlan2
- "wlan2" will be used to scan

Scan for access points (NetworkManagerWiFiScanner)
- Executing: /usr/bin/nmcli -t -f ssid,bssid,chan,freq,signal,security,rsn-flags device wifi list

Process results of scan
- 5 APs discovered

SSID                      Auth            Encryption Mac Address       Signal Radio    Band    Channel
------------------------- --------------- ---------- ----------------- ------ -------- ------- -------
MyLAN1                    WPA2-Personal   CCMP       0C-9A-91-2C-BB-28  100%  Unknown  2.4 MHz       3
NETGEAR99                 WPA2-Personal   CCMP       B0-41-A0-85-0F-D6  100%  Unknown  2.4 MHz       3
**hidden**                WPA2-Personal   CCMP       88-9E-62-1D-3E-1A  100%  Unknown  2.4 MHz      11
Nirvana                   Open            None       F4-CF-B2-AC-BD-B1   44%  Unknown  2.4 MHz       1
ThePond                   WPA2-Personal   CCMP       7C-80-26-01-70-DE   44%  Unknown  2.4 MHz       1

Notes:

  • On windows, you can rescan (-r) and search for current networks
  • You may save the outut of the underlying command into a file (-s)
  • You can force which method searches for networks:
    • Linux: nmcli, iw, iwlist
    • Windows: netsh
  • Tested on
    • Windows 10/11
    • Ubuntu Ubuntu 22.04.3 LTS
    • RaspPi OS - Debian GNU/Linux 11 (bullseye) / Raspbian GNU/Linux 10 (buster)

ToDo:

  • Identify Band (i.e 2.4 MHz / 5 Mhz) on Windows
  • Radio identification for Linux (802.11xx)
  • Add Apple MAC capability
  • Create unit tests

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dt_apscanner-0.1.3.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

dt_apscanner-0.1.3-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file dt_apscanner-0.1.3.tar.gz.

File metadata

  • Download URL: dt_apscanner-0.1.3.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.6 Windows/10

File hashes

Hashes for dt_apscanner-0.1.3.tar.gz
Algorithm Hash digest
SHA256 c23ad0bb77d1e26efde3b5033d50563ae0af58c5c25fc5efe0e5921605615273
MD5 c85a40046fc54f8970176bf4c232216b
BLAKE2b-256 20e134956e51b7b9c0c47089bb2d0035a4ae43ef08ab72e9b9a1452338d864d9

See more details on using hashes here.

File details

Details for the file dt_apscanner-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: dt_apscanner-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.6 Windows/10

File hashes

Hashes for dt_apscanner-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4e945e1d666acbc7abdeee57586db4f3ce0304d808509bbd070acdaf86641d3c
MD5 837f126ad9588305657583a93c07d3ef
BLAKE2b-256 4d5ac40ed70972a1826fc89a7750c5997a21d0cc7570bf573ddedf79b0ceef80

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page