IPMG (IP Management Tool) is a modern, modular, enterprise-ready network scanner and monitoring utility.
It replaces the legacy ip_pinger.py script with a clean package architecture, CLI tooling, and automated workflows.
Designed for:
- Network administrators
- Systems engineers
- Cybersecurity teams
- DevOps and SREs
IPMG supports:
- Subnet auto-discovery
- Parallel pinging with thread pools
- Hostname resolution
- Multi-format reporting (XLSX/CSV/JSON)
- Scheduled recurrent scans
- Auto-generated sample Excel input
- Colorized CLI output
- Modular testable architecture
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 includes a built-in disclaimer shown at runtime (security.py).
- Fully modular Python package (
src/ipmg) - System-wide CLI command:
ipmg - Test coverage via
pytest - Formatting and linting via
ruffandblack - CI-friendly project structure
Install the latest stable release (ipmg 1.0.2) from PyPI:
pip install ipmgVerify installation:
ipmg --helpuv tool install git+https://github.com/sameeralam3127/ipmg.gitTest:
ipmg --helpgit clone https://github.com/sameeralam3127/ipmg.git
cd IP_Management
pip install -e .Verify:
ipmg --helpcurl -sSL https://raw.githubusercontent.com/sameeralam3127/ipmg/main/install.sh | bashThis script:
- Installs uv if missing
- Installs ipmg globally using uv
Verify:
ipmg --help| Use Case | Command | Description |
|---|---|---|
| Basic Example (Default Input) | ipmg |
Runs with default config. Creates ip_list.xlsx with sample IPs if missing. |
| Scan a Custom Input File | ipmg --input network_devices.xlsx |
Scans IPs from the specified Excel file. |
| Auto-discover LAN Subnet | ipmg --discover |
Automatically detects and scans devices in the local subnet. |
| Export Results to CSV + XLSX | ipmg --formats csv xlsx |
Exports scan results in CSV and Excel formats. |
| Resolve Hostnames (PTR Records) | ipmg --resolve |
Performs reverse DNS (PTR) lookups for hostnames. |
| Run Every 10 Minutes | ipmg --interval 10 |
Repeats the scan every 10 minutes. |
If ip_list.xlsx does not exist → it will be created with sample IPs.
=== IPMG Summary ===
Active: 132
Inactive: 12
Unreachable: 4
Timeout: 2
Success Rate: 88.00%
Example:
| IP Address |
|---|
| 192.168.1.1 |
| 10.0.0.1 |
| 8.8.8.8 |
| IP Address | Status | Latency | Hostname | Timestamp |
|---|---|---|---|---|
| 8.8.8.8 | Active | 12.5 ms | dns.google | 2025-10-12 18:40:15 |
Solution:
pip install -e .
Run inside a writeable directory or use:
sudo ipmg ...
Likely missing DNS PTR records.
A native macOS interface for IPMG is under active development.
Download Beta:
👉 https://github.com/sameeralam3127/IP_Management/releases/tag/macOS
MIT License — free for commercial and personal use.
Made with ❤️ using Python & uv.