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

✔ Modular Python package (src/ipmg)

Not a single script anymore — now a clean, testable package.

✔ CLI Command: ipmg

Installed system-wide or via uv.

✔ Auto Subnet Discovery

Scan your /24 instantly:

ipmg --discover

✔ Multi-threaded high performance

Scans hundreds of hosts in seconds.

✔ Auto Sample Excel Generation

If the input file is missing:

ip_list.xlsx

is created automatically.

✔ Supports multiple output formats

--formats xlsx csv json

✔ Hostname resolution

--resolve

✔ Scheduled scanning

--interval 5

Runs every 5 minutes.

✔ Fully tested (pytest) + formatted (ruff/black)


Installation

Option 1 — Install via uv (recommended)

uv tool install git+https://github.com/sameeralam3127/ipmg.git

Test:

ipmg --help

Option 2 — Install via pip (editable, dev mode)

git clone https://github.com/sameeralam3127/ipmg.git
cd IP_Management

pip install -e .

Now:

ipmg --help

Option 3 — 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 into uv

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.2.tar.gz (11.3 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.2-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

Details for the file ipmg-1.0.2.tar.gz.

File metadata

  • Download URL: ipmg-1.0.2.tar.gz
  • Upload date:
  • Size: 11.3 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.2.tar.gz
Algorithm Hash digest
SHA256 843f1b5cafa0fc081cf54546018cca60bcaa214a8466898bf8ccc23fb604fdcb
MD5 9590a65bfd6d7ed61a1d5ec676e11c51
BLAKE2b-256 c89b933a7ae3f135ced157ad73f889fc71084bf087c55957ea7c18bbf0d546d8

See more details on using hashes here.

File details

Details for the file ipmg-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: ipmg-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 9.9 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9696cc7ef96cc7e0b2142950e7d481131ee072416485e0d27a8d4aa0e0fcd17c
MD5 a6adca5379892954c37a04503412c59e
BLAKE2b-256 2487d6c27e2ff957bb2ed2152648a321d4d26d61759b0ee9e0feb76bede131ce

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