IP Management & Ping Monitoring CLI Tool
Project description
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 ipmg
Verify installation:
ipmg --help
Option 2 — Install via uv (recommended for isolated global install)
uv tool install git+https://github.com/sameeralam3127/ipmg.git
Test:
ipmg --help
Option 3 — Install via pip (editable, development mode)
git clone https://github.com/sameeralam3127/ipmg.git
cd IP_Management
pip install -e .
Verify:
ipmg --help
Option 4 — Install using curl installer
curl -sSL https://raw.githubusercontent.com/sameeralam3127/ipmg/main/install.sh | bash
This script:
- Installs uv if missing
- Installs ipmg globally using uv
Verify:
ipmg --help
Usage
Help
ipmg --help
Basic Example (using default input)
ipmg
If ip_list.xlsx does not exist → it will be created with sample IPs.
Scan a custom input file
ipmg --input network_devices.xlsx
Auto-discover LAN subnet
ipmg --discover
Export results to CSV + XLSX
ipmg --formats csv xlsx
Resolve hostnames (PTR)
ipmg --resolve
Run every 10 minutes
ipmg --interval 10
Testing
Run all tests:
uv run pytest
Formatting & Linting
Ruff (lint + autofix)
uv run ruff check . --fix
Ruff formatter (PEP-style formatting)
uv run ruff format .
Black (formatter)
uv run black .
Pre-commit Hooks (auto-format on commit)
Install:
uv run pre-commit install
Run manually:
uv run pre-commit run --all-files
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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ipmg-1.0.3.tar.gz.
File metadata
- Download URL: ipmg-1.0.3.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f69e4cdd39f101274aa991f47b30db8d12358977cb36cd718aeabab940d2e5f
|
|
| MD5 |
cc0f659da890d865c26e3c6f4f6385bc
|
|
| BLAKE2b-256 |
56ae6346be9ff01a2cc095e676c65a6f7dbb3381f04ea2a11bfa855a300eabb4
|
File details
Details for the file ipmg-1.0.3-py3-none-any.whl.
File metadata
- Download URL: ipmg-1.0.3-py3-none-any.whl
- Upload date:
- Size: 10.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3afecd48f467e662a8745104d0d8eaaab350a7d69d1e7e133b190e36481bc58
|
|
| MD5 |
e1ce39e95849f89febc72d04cba09e68
|
|
| BLAKE2b-256 |
651cf1ba05b2b9c4d3526a854cd6320d68e0b091ab8f3f485c0d060552f7cd6e
|