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.1.tar.gz (16.8 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.1-py3-none-any.whl (14.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ipmg-1.1.1.tar.gz
  • Upload date:
  • Size: 16.8 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.1.tar.gz
Algorithm Hash digest
SHA256 88885515fc6543cb5f5e38f70fe4e1e2211ab19bc98014ce84afee721d6c84bb
MD5 01fa055d29ec2d79f0e75af72a28a83c
BLAKE2b-256 ac846a6c8a2998e1ab3f145f7a92f3fd290011cb6a4a3dc8ffd366abd2b8041c

See more details on using hashes here.

Provenance

The following attestation bundles were made for ipmg-1.1.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: ipmg-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 14.9 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bee40696fdc36e120002fb75f3314b80526b8e4171e1aaff97e71ddf3ce1fba2
MD5 216a9674fc14ddcf9dcf238647389cf8
BLAKE2b-256 c506104357ad1f9767a2e8008aa3cf483fcf66fc161db2cbdfb6fef0c7ae7756

See more details on using hashes here.

Provenance

The following attestation bundles were made for ipmg-1.1.1-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