A lightweight, cross-platform GUI application for discovering devices on your local network. Built with Python and Tkinter, it requires only the standard library to run.
- Automatic detection of local network interfaces and subnets
- Concurrent scanning using thread pools for fast results
- Ping-based host discovery
- ARP table lookup for MAC address resolution
- Cross-platform support (Windows, Linux, macOS)
- Simple graphical interface with real-time progress updates
The scanner automatically detects your local network interfaces using multiple methods:
- psutil (if installed) - Cross-platform Python library
- ip command - Linux systems
- ifconfig - macOS and older Linux systems
- ipconfig - Windows systems
The first method that succeeds is used, providing broad compatibility.
For each IP address in the selected network range:
- Ping probe - Sends an ICMP echo request to determine if the host is online
- ARP lookup - Queries the system ARP table to retrieve the MAC address
Scanning is performed concurrently using a thread pool (up to 64 workers) to maximize speed while remaining responsive.
Discovered hosts are displayed with:
- IP address
- Status (
upfor ping response,arp-onlyfor ARP-only detection) - MAC address (if available)
- Python 3.8 or higher
- Tkinter (included with Python on Windows and macOS)
psutil- Improves network interface detection reliability
git clone https://github.com/yourusername/SimpleIPScanner.git
cd SimpleIPScannerpip install -r requirements.txtTkinter is included with the standard Python installer. No additional steps required.
Tkinter is included with Python from python.org. If using pyenv, you may need to install Tk support:
brew install tcl-tk
export LDFLAGS="-L$(brew --prefix tcl-tk)/lib"
export CPPFLAGS="-I$(brew --prefix tcl-tk)/include"
export PKG_CONFIG_PATH="$(brew --prefix tcl-tk)/lib/pkgconfig"
pyenv install 3.x.xInstall Tkinter if not already present:
sudo apt update
sudo apt install python3-tksudo dnf install python3-tkintersudo pacman -S tkpython scanner.pyThe application automatically detects available network interfaces. Select the desired network from the dropdown menu.
Click Start Scan to begin discovering devices on the selected network.
Discovered hosts appear in the output area as they are found. The status bar shows scan progress.
Click Stop to halt an in-progress scan.
- Large networks (greater than 4096 hosts) are automatically truncated to maintain responsiveness
- Scanning requires appropriate network permissions; some systems may require elevated privileges for full ARP table access
- Firewall rules on target hosts may block ping responses, but devices may still appear via ARP lookup
| Issue | Solution |
|---|---|
| No networks detected | Ensure you have an active network connection and try clicking Refresh |
| ModuleNotFoundError: _tkinter | Install Tkinter for your platform (see Installation section) |
| Hosts not appearing | Target hosts may have firewalls blocking ICMP; try running with elevated privileges |
| Slow scanning | Reduce network size or check network connectivity |
This project is provided as-is for educational and personal use.