Python Version MIT License Cross-Platform CLI Tool

IPMG — IP Management & Ping Monitoring Tool

A modern, modular, enterprise-ready network scanner and monitoring utility. Replaces legacy ping scripts with a clean package architecture, CLI tooling, and automated workflows.

Network Administrators Cybersecurity Teams DevOps & SREs Systems Engineers
Sample Output Summary
Active: 132
Inactive: 12
Unreachable: 4
Timeout: 2
Success Rate: 88.00%
ipmg --discover
⚠️ 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.

Features

IPMG supports a wide range of network monitoring and management capabilities

Modular Python Package

Not a single script anymore — now a clean, testable package architecture (src/ipmg).

Multi-threaded Performance

Scans hundreds of hosts in seconds with parallel pinging using thread pools.

Auto Subnet Discovery

Scan your /24 instantly with ipmg --discover command.

Multi-format Reporting

Export results in XLSX, CSV, and JSON formats with --formats xlsx csv json.

Scheduled Scanning

Run recurrent scans automatically with --interval 5 (every 5 minutes).

Colorized CLI Output

Easy-to-read terminal output with color-coded status indicators.

Command Line Interface

IPMG installs as a system-wide CLI tool accessible via ipmg command.

ipmg --help
Show all available commands and options
ipmg --discover --formats csv json
Discover subnet and export to CSV and JSON
ipmg --input network_devices.xlsx --resolve
Scan custom file with hostname resolution
Sample Output
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
Input File Format

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.

Output File Format

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
Testing & Quality

IPMG includes comprehensive testing and code quality tools.

uv run pytest
Run all tests
uv run ruff check . --fix
Lint and autofix with Ruff
uv run black .
Format code with Black
Pre-commit Hooks

Automatically format and lint code on commit.

uv run pre-commit install
Install pre-commit hooks
uv run pre-commit run --all-files
Run hooks manually on all files
Code Quality Tools
pytest ruff black pre-commit uv

Installation

Multiple installation options for different use cases

Option 1 — UV (Recommended)

Install via uv, the fast Python package installer.

uv tool install git+https://github.com/sameeralam3127/ipmg.git
ipmg --help
Fastest Recommended

Option 2 — Pip (Dev Mode)

Install in editable mode for development.

git clone https://github.com/sameeralam3127/ipmg.git
cd ipmg
pip install -e .
Development Editable

Option 3 — Curl Installer

One-line installer for quick setup.

curl -sSL https://raw.githubusercontent.com/sameeralam3127/ipmg/main/install.sh | bash

This script:

  • Installs uv if missing
  • Installs ipmg globally
  • Makes command available system-wide
Quick Install One-liner

Usage Examples

Basic Usage

Scan using default input file.

ipmg

If ip_list.xlsx doesn't exist, it will be created with sample IPs.

Custom Input File

Scan devices from a custom Excel file.

ipmg --input network_devices.xlsx
Export Results

Export to multiple formats simultaneously.

ipmg --formats csv xlsx json
Scheduled Scanning

Run scans automatically at intervals.

ipmg --interval 10

Runs every 10 minutes until stopped.

Troubleshooting

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.

macOS GUI (Beta)

A native macOS interface for IPMG is under active development.

Download Beta