Who's on your Wi-Fi?

Every device on your network: IP, MAC, hostname, maker, and a best guess at what it is. Even the phones that hide behind a random MAC.

GET IT ON GITHUB
A terminal scan: a router and three phones with randomized MACs
1

Ping sweep

All 254 addresses, 100 at a time. Wakes sleeping devices up.

2

ARP scan

Raw ARP requests with scapy: devices that ignore pings still answer.

3

ARP cache

ip neigh fills in anything the first two missed.

4

Who is it?

Hostname, maker from the MAC, and a type guess. Randomized MACs get flagged as phones.

Run it

pip install -r requirements.txt
sudo -E ./venv/bin/python scan_wifi.py           # terminal
sudo -E ./venv/bin/python scan_wifi_tkinter.py   # window
sudo -E ./venv/bin/python scan_wifi_pygame.py    # animated

Linux, Python 3.9+, root for the ARP scan. Only scan networks you own or are allowed to scan.