Skip to main content

IPMG — IP Management & Ping Monitoring Tool

PyPI Python Version License Publish

Scan and monitor IP networks from the command line. IPMG pings hosts in parallel, resolves hostnames, and exports results as Excel, CSV, JSON, or Markdown reports.

Security note: only scan networks you are authorized to scan. Unauthorized scanning may violate your organization's policies or the law.


Install

pip install ipmg

Check that it works:

ipmg --version
Other install methods

uv (isolated global install):

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

curl installer (installs uv if missing):

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

From source (development):

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

Quick start

# Scan your local subnet automatically
ipmg --discover

# Scan a single host
ipmg --input 8.8.8.8

# Scan a CIDR range
ipmg --input 192.168.1.0/24

# Scan targets from a file (xlsx, csv, txt, or list)
ipmg --input targets.txt

# Resolve hostnames and export CSV + a readable Markdown report
ipmg --input targets.txt --resolve --formats md csv

Running plain ipmg uses ip_list.xlsx as input and creates a sample file if it does not exist.


Options

Flag Default Description
--input ip_list.xlsx Targets: a file (.xlsx, .xls, .csv, .txt, .list), a single IP, or a CIDR block
--output results Output file name prefix
--formats xlsx One or more of xlsx, csv, json, md
--discover off Auto-detect and scan the local subnet
--resolve off Reverse DNS (PTR) lookup for each host
--dns-cache-ttl 300 Cache DNS results for this many seconds (0 disables caching)
--timeout 2 Ping timeout in seconds
--count 1 Pings per host
--threads 50 Parallel workers
--interval off Repeat the scan every N minutes
--verbose off Debug logging

Input formats

  • Excel / CSV — must contain an IP Address column:

    IP Address
    192.168.1.1
    10.0.1.0/30
  • Text file — one IP or CIDR per line; blank lines and # comments are ignored:

    # Production DNS
    8.8.8.8
    192.168.1.0/30
    
  • Command line — a literal IP (8.8.8.8) or CIDR block (10.0.0.0/24)


Output

Every scan prints a color-coded summary and writes result files (e.g. results_20260628_120000.xlsx). Each row includes:

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

Status values: Active, Inactive, Timeout, Unreachable, Invalid IP, Error.

The md format produces a shareable Markdown report with a status summary table — handy for tickets, handoffs, and incident timelines.


Troubleshooting

  • command not found: ipmg — make sure pip's script directory is on your PATH, or reinstall with pip install ipmg.
  • Hostname shows Unresolvable — the host has no DNS PTR record.
  • Input file rejected — check the extension is supported and that spreadsheets/CSVs include an IP Address column.

Development

pip install -e ".[dev]"
PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 pytest -q

Releases are automated: merging a conventional commit (feat: ..., fix: ...) to main triggers GitHub Actions to run tests, create a semantic-release tag, and publish to PyPI.


License

MIT — free for commercial and personal use.

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.4.0.tar.gz (17.6 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.4.0-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for ipmg-1.4.0.tar.gz
Algorithm Hash digest
SHA256 6730c8831e7fe3dd4bb898da5d9b74f10265d40dbba138c5b6ececd58a1281e7
MD5 23f96ff3f776b48e4b15b2547a7c5e5e
BLAKE2b-256 6adcef29adce11c8a7886825d7fbb63e81a51470c15f915852812aade2c3dd1a

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: ipmg-1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 15.6 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.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0808f47aed25a055cdf71985d8b2bce74e2b6244a756913ebba02599b8d1e230
MD5 9ba98b9e34eecdfa675f80b168973e3c
BLAKE2b-256 e38d89b00109effe3f99d70f2d7fc368b2df0ea2be464c1fcbad8024b46d3ef0

See more details on using hashes here.

Provenance

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

Release history Release notifications | RSS feed

1.13.2

2 files

1.13.1

2 files

1.13.0

2 files

1.12.2

2 files

1.12.1

2 files

1.12.0

2 files

1.11.0

2 files

1.10.0

2 files

1.9.0

2 files

1.8.1

2 files

1.8.0

2 files

1.7.0

2 files

1.6.1

2 files

1.6.0

2 files

1.5.0

2 files

This release

1.4.0 This release

2 files

1.3.0

2 files

1.2.0

2 files

1.1.2

2 files

1.1.1

2 files

1.0.3

2 files

1.0.2

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page