A lightweight CLI tool to scan your local network, identify connected devices, and alert you when unknown devices appear.
Works on Windows, Linux, and macOS. Uses only Python standard library — no extra dependencies.
- Discovers all active hosts on the
/24subnet - Resolves hostnames via reverse DNS
- Identifies device manufacturers from MAC OUI prefixes
- Detects open ports (SSH, HTTP, RDP, SMB, etc.)
- Tracks known devices and flags new/unknown ones
- Python 3.8+
- Run as administrator / root for full ARP table access
# Scan the network and list all devices
python main.py scan
# Show a summary: connected vs known vs unknown
python main.py status
# List your registered devices
python main.py list
# Register a device as known
python main.py add aa:bb:cc:dd:ee:ff "My Laptop" laptop
# Remove a known device
python main.py remove aa:bb:cc:dd:ee:ff- Detects your local IP using a dummy UDP socket (no packets sent)
- Pings all 254 addresses on the
/24subnet in parallel - Reads the ARP table to map IPs to MAC addresses
- Resolves hostnames via
socket.gethostbyaddr - Scans common ports on each active host
- Compares MACs against
known_devices.jsonand reports unknowns
known_devices.jsonis created automatically on first use and is excluded from version control via.gitignore— it contains your network data- Scan time is roughly 30–60 seconds depending on network size and host responsiveness
- Devices that do not respond to ICMP ping will not be detected