Skip to main content

IP Management & Ping Monitoring CLI Tool

Project description

IPMG — IP Management & Ping Monitoring Tool

PyPI Python Version License Platform CLI CI Ready Publish


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)
  • Flexible target input (XLSX/CSV/text/single IP/CIDR)
  • Scheduled recurrent scans
  • Auto-generated sample input files
  • Colorized CLI output
  • Rich console panels, progress bars, and color-coded summaries
  • Modular testable architecture
  • Batch-level scan timestamps and duration tracking

⚠️ 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
  • Accepts targets from .xlsx, .csv, .txt, .list, literal IPs, and CIDR blocks
  • 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 from PyPI:

pip install ipmg

Verify installation:

ipmg --help

You can always check the current published version on PyPI.


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 ipmg
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

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 Excel File ipmg --input network_devices.xlsx Scans IPs from an Excel file with an IP Address column.
Scan a CSV File ipmg --input network_devices.csv Scans IPs from a CSV file with an IP Address column.
Scan a Text File ipmg --input targets.txt Scans one target per line. Blank lines and # comments are ignored.
Scan a Single Host ipmg --input 8.8.8.8 Scans a literal IP passed directly on the CLI.
Scan a CIDR Range ipmg --input 192.168.1.0/24 Expands the CIDR block into host IPs and scans them.
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 the default input file does not exist, IPMG creates a sample file based on the requested extension such as .xlsx, .csv, or .txt.


Sample Output Summary

IPMG Summary

Status        Count
Active        132
Inactive      12
Unreachable   4
Timeout       2

Batch Timestamp: 2026-04-09 11:42:13
Total Hosts: 150
Active Rate: 88.00%
Completion Rate: 90.67%
Scan Duration: 6.24s

Input Formats

IPMG accepts targets from:

  • Excel files: .xlsx, .xls
  • CSV files: .csv
  • Plain text files: .txt, .list
  • Literal IPs such as 8.8.8.8
  • CIDR blocks such as 10.0.0.0/24

For Excel and CSV inputs, the file must contain an IP Address column.

Example spreadsheet/CSV:

IP Address
192.168.1.1
10.0.0.1
10.0.1.0/30

Example text file:

# Production DNS
8.8.8.8
1.1.1.1
192.168.1.0/30

Output File Format

Each exported row includes batch-level metadata so a single run can be grouped reliably in downstream tools.

IP Address Status Latency Hostname Batch Timestamp Scan Duration (s)
8.8.8.8 Active 12.5 dns.google 2026-04-09 11:42:13 6.24

Possible status values include Active, Inactive, Timeout, Unreachable, Invalid IP, and Error.


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.

Input file is rejected

Check that:

  • The file extension is one of .xlsx, .xls, .csv, .txt, or .list
  • Spreadsheet and CSV files include an IP Address column
  • Plain text files contain one IP or CIDR target per line

One host crashes the scan

IPMG now records unexpected per-host failures as Error and continues scanning the remaining targets.


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.1.2.tar.gz (17.4 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.1.2-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ipmg-1.1.2.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ipmg-1.1.2.tar.gz
Algorithm Hash digest
SHA256 0e30b98733868bda6d6af98f0e4ef7d8605d7edba85d7bef8881e19f2eb2f650
MD5 dd580f70a779a7010a50b0c58936e02a
BLAKE2b-256 623effc2575fb5aa3b7929f9732f86058a795f8d4f157085c78d9c539d741244

See more details on using hashes here.

Provenance

The following attestation bundles were made for ipmg-1.1.2.tar.gz:

Publisher: publish.yml on sameeralam3127/ipmg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: ipmg-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 15.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ipmg-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b171bfefd7cb90134346e77d4534706c32a941920cd1abbf340608cfb17caa78
MD5 78fca34a4b66a27a5fa517d688824619
BLAKE2b-256 2b8901ca5f66428b05d875547effcee257f424132a63b75ae7b85530d84aeff5

See more details on using hashes here.

Provenance

The following attestation bundles were made for ipmg-1.1.2-py3-none-any.whl:

Publisher: publish.yml on sameeralam3127/ipmg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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