https://github.com/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.
https://github.com/sameeralam3127/ipmg
excel icmp-ping json macos network parser ping python swift thread-pool
Last synced: 14 days ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/sameeralam3127/ipmg
- Owner: sameeralam3127
- License: mit
- Created: 2025-04-23T18:09:21.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2026-01-24T17:32:19.000Z (about 1 month ago)
- Last Synced: 2026-01-25T06:36:47.595Z (about 1 month ago)
- Topics: excel, icmp-ping, json, macos, network, parser, ping, python, swift, thread-pool
- Language: Python
- Homepage: https://ipmgtool.github.io/
- Size: 191 KB
- Stars: 7
- Watchers: 1
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# 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 `ruff` and `black`
- 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:
```bash
pip install ipmg
```
Verify installation:
```bash
ipmg --help
```
---
## Option 2 — Install via uv (recommended for isolated global install)
```bash
uv tool install git+https://github.com/sameeralam3127/ipmg.git
```
Test:
```bash
ipmg --help
```
---
## Option 3 — Install via pip (editable, development mode)
```bash
git clone https://github.com/sameeralam3127/ipmg.git
cd IP_Management
pip install -e .
```
Verify:
```bash
ipmg --help
```
---
## Option 4 — Install using curl installer
```bash
curl -sSL https://raw.githubusercontent.com/sameeralam3127/ipmg/main/install.sh | bash
```
This script:
- Installs **uv** if missing
- Installs **ipmg** globally using uv
Verify:
```bash
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](https://github.com/sameeralam3127/IP_Management/releases/tag/macOS)
---
# License
MIT License — free for commercial and personal use.
---
Made with ❤️ using Python & uv.