Ionity (Pty) Ltd — www.ionity.today
A cross-platform, Python-based network monitoring tool with a full GUI and a rich CLI. Monitor pings, DNS, active ports, interface traffic and Pi-hole statistics — all from one place.
| Feature | CLI | GUI |
|---|---|---|
| Ping host (with RTT stats) | ✓ | ✓ |
| DNS resolution (custom DNS server) | ✓ | ✓ |
| DNS comparison across all servers | — | ✓ |
| Network information (hostname, IP, interfaces) | ✓ | ✓ |
| Internet connectivity quality check | ✓ | ✓ |
| Port scanner | ✓ | ✓ |
| Interface traffic counters | ✓ | ✓ |
| Pi-hole status / summary / top blocked | ✓ | ✓ |
| Live continuous monitoring | ✓ | ✓ |
- Python 3.8 or higher
pip(bundled with Python)tkinter(for GUI — pre-installed on most systems; on Ubuntu:sudo apt install python3-tk)
git clone https://github.com/AntwerpDesignsIonity/NetworkzeroMonitor.git
cd NetworkzeroMonitorUnix / Linux / macOS:
chmod +x setup.sh run_cli.sh run_gui.sh
./setup.shWindows:
setup.batGUI:
./run_gui.sh # Unix
run_gui.bat # WindowsCLI:
./run_cli.sh --help # Unix
run_cli.bat --help # Windowsnetworkzero_cli.py <command> [options]
| Command | Description |
|---|---|
ping <host> |
Ping a host |
dns <domain> |
DNS lookup (optionally via a specific server) |
status |
Show network info and connectivity |
ports |
Scan common ports on a host |
traffic |
Show interface traffic counters |
pihole <action> |
Pi-hole status / summary / top blocked |
monitor |
Continuous live monitoring |
# Ping with 10 packets
./run_cli.sh ping 8.8.8.8 -c 10
# DNS lookup using Cloudflare
./run_cli.sh dns github.com -s 1.1.1.1
# Verbose network status
./run_cli.sh status -v
# Scan specific ports
./run_cli.sh ports --host 192.168.1.1 --ports 22 80 443
# Show interface traffic
./run_cli.sh traffic
# Pi-hole summary
./run_cli.sh pihole summary --url http://192.168.1.1 --api-key YOUR_KEY
# Continuous monitoring every 3 seconds
./run_cli.sh monitor --host 8.8.8.8 --interval 3The GUI is organised into seven tabs:
- 📊 Dashboard — hostname, IP addresses, interfaces, connectivity quality
- 🏓 Ping — interactive ping with RTT display
- 🌐 DNS Lookup — single lookup or compare across all configured DNS servers
- 🕳 Pi-hole — status, daily statistics, top blocked domains
- 📡 Live Monitor — scrolling live log of connectivity and ping results
- 🔍 Port Scanner — scan a host for open/closed ports
- 📶 Traffic — per-interface traffic counters (bytes sent/received, errors)
Edit config.ini to change defaults:
[Network]
default_ping_host = 8.8.8.8
test_domains = google.com,cloudflare.com,github.com
dns_servers = 8.8.8.8,1.1.1.1,208.67.222.222
monitor_interval = 5
ping_count = 4
ping_timeout = 2
[PiHole]
# url = http://192.168.1.1
# api_key = your_api_key_here
[UI]
window_width = 1024
window_height = 720
theme = clam# Activate the virtual environment first
source venv/bin/activate # Unix
venv\Scripts\activate.bat # Windows
# Run unit tests
python test_networkzero.py
# Or run the manual demo
python test_networkzero.py --demo| Package | Purpose |
|---|---|
dnspython |
DNS resolution with custom servers |
psutil |
Interface statistics and traffic counters |
requests |
Public IP lookup, Pi-hole API |
matplotlib |
(optional) Future chart support |
NetworkzeroMonitor/
├── network_monitor.py # Core monitoring engine
├── networkzero_cli.py # Command-line interface
├── networkzero_gui.py # Graphical user interface (tkinter)
├── test_networkzero.py # Unit + integration tests
├── config.ini # Application configuration
├── requirements.txt # Python dependencies
├── setup.sh # Unix setup script
├── setup.bat # Windows setup script
├── run_cli.sh / run_cli.bat
└── run_gui.sh / run_gui.bat
MIT License — see LICENSE for details.
NetworkzeroMonitor is a product of Ionity (Pty) Ltd — www.ionity.today