A modern, modular, enterprise-ready network scanner and monitoring utility. Replaces legacy ping scripts with a clean package architecture, CLI tooling, and automated workflows.
ipmg --discover
Do NOT use this tool on networks without explicit authorization. Always obtain written approval from your organization's Cybersecurity / Network Security team. Unauthorized scanning may violate internal policies or law.
IPMG supports a wide range of network monitoring and management capabilities
Not a single script anymore — now a clean, testable package
architecture (src/ipmg).
Scans hundreds of hosts in seconds with parallel pinging using thread pools.
Scan your /24 instantly with
ipmg --discover command.
Export results in XLSX, CSV, and JSON formats with
--formats xlsx csv json.
Run recurrent scans automatically with
--interval 5 (every 5 minutes).
Easy-to-read terminal output with color-coded status indicators.
IPMG installs as a system-wide CLI tool accessible via
ipmg command.
ipmg --help
ipmg --discover --formats csv json
ipmg --input network_devices.xlsx --resolve
| IP Address | Status | Latency | Hostname |
|---|---|---|---|
| 8.8.8.8 | Active | 12.5 ms | dns.google |
| 192.168.1.1 | Active | 1.2 ms | router.local |
| 10.0.0.15 | Inactive | Timeout | N/A |
| 192.168.1.50 | Active | 5.8 ms | server-01 |
IPMG accepts Excel (.xlsx) or CSV files with IP addresses to scan.
IP Address
192.168.1.1
10.0.0.1
8.8.8.8
If no input file is found, IPMG automatically generates a
sample ip_list.xlsx file.
Results include detailed information for each scanned IP address.
| IP Address | Status | Latency | Hostname | Timestamp |
|---|---|---|---|---|
| 8.8.8.8 | Active | 12.5 ms | dns.google | 2025-10-12 18:40:15 |
| 192.168.1.1 | Active | 1.2 ms | router.local | 2025-10-12 18:40:15 |
IPMG includes comprehensive testing and code quality tools.
uv run pytest
uv run ruff check . --fix
uv run black .
Automatically format and lint code on commit.
uv run pre-commit install
uv run pre-commit run --all-files
Multiple installation options for different use cases
Install via uv, the fast Python package installer.
uv tool install
git+https://github.com/sameeralam3127/ipmg.git
ipmg --help
Install in editable mode for development.
git clone https://github.com/sameeralam3127/ipmg.git
cd ipmg
pip install -e .
One-line installer for quick setup.
curl -sSL
https://raw.githubusercontent.com/sameeralam3127/ipmg/main/install.sh
| bash
This script:
Scan using default input file.
ipmg
If ip_list.xlsx doesn't exist, it will be
created with sample IPs.
Scan devices from a custom Excel file.
ipmg --input network_devices.xlsx
Export to multiple formats simultaneously.
ipmg --formats csv xlsx json
Run scans automatically at intervals.
ipmg --interval 10
Runs every 10 minutes until stopped.
Solution: Ensure IPMG is installed correctly:
pip install -e .
Or check if Python Scripts directory is in your PATH.
Solution: Run inside a writeable directory or use:
sudo ipmg ...
Or change directory permissions.
Solution: This is likely due to missing DNS PTR records.
Try without hostname resolution:
ipmg --input file.xlsx
Or check DNS configuration.