Skip to main content

IP Management & Ping Monitoring CLI Tool

Project description

IPMG — IP Management & Ping Monitoring Tool

Python Version License Platform CLI CI Ready Tests


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:

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

ipmg-1.0.3.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ipmg-1.0.3-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

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

Hashes for ipmg-1.0.3.tar.gz
Algorithm Hash digest
SHA256 1f69e4cdd39f101274aa991f47b30db8d12358977cb36cd718aeabab940d2e5f
MD5 cc0f659da890d865c26e3c6f4f6385bc
BLAKE2b-256 56ae6346be9ff01a2cc095e676c65a6f7dbb3381f04ea2a11bfa855a300eabb4

See more details on using hashes here.

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

Hashes for ipmg-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f3afecd48f467e662a8745104d0d8eaaab350a7d69d1e7e133b190e36481bc58
MD5 e1ce39e95849f89febc72d04cba09e68
BLAKE2b-256 651cf1ba05b2b9c4d3526a854cd6320d68e0b091ab8f3f485c0d060552f7cd6e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page