sameeralam3127/ipmg
IPMG is a modular, enterprise-ready IP management and ping monitoring CLI tool written in Python. It provides high-performance parallel network scanning, subnet auto-discovery, hostname resolution, scheduled monitoring, and multi-format reporting (XLSX/CSV/JSON) with a clean, testable architecture.
IPMG — IP Management & Ping Monitoring Tool
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
⚠️ Security Disclaimer
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).
Features
- Fully modular Python package (
src/ipmg) - System-wide CLI command:
ipmg - Test coverage via
pytest - Formatting and linting via
ruffandblack - CI-friendly project structure
Installation
Option 1 — Install from PyPI (recommended for most users)
Install the latest stable release (ipmg 1.0.2) from PyPI:
pip install ipmgVerify installation:
ipmg --helpOption 2 — Install via uv (recommended for isolated global install)
uv tool install git+https://github.com/sameeralam3127/ipmg.gitTest:
ipmg --helpOption 3 — Install via pip (editable, development mode)
git clone https://github.com/sameeralam3127/ipmg.git
cd IP_Management
pip install -e .Verify:
ipmg --helpOption 4 — Install using curl installer
curl -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.
Sample Output Summary
=== IPMG Summary ===
Active: 132
Inactive: 12
Unreachable: 4
Timeout: 2
Success Rate: 88.00%
Input File Format (Excel or CSV)
Example:
| IP Address |
|---|
| 192.168.1.1 |
| 10.0.0.1 |
| 8.8.8.8 |
Output File Format
| IP Address | Status | Latency | Hostname | Timestamp |
|---|---|---|---|---|
| 8.8.8.8 | Active | 12.5 ms | dns.google | 2025-10-12 18:40:15 |
Troubleshooting
Command not found: ipmg
Solution:
pip install -e .
Permission denied output folder
Run inside a writeable directory or use:
sudo ipmg ...
Hostname Unresolvable
Likely missing DNS PTR records.
macOS GUI (PingMonitorApp – Beta)
A native macOS interface for IPMG is under active development.
Download Beta:
👉 https://github.com/sameeralam3127/IP_Management/releases/tag/macOS
License
MIT License — free for commercial and personal use.
Made with ❤️ using Python & uv.