Skip to main content

IPMG

IP Management & Ping Monitoring Tool
Know what changed on your network since the last scan.

PyPI Python Version License Publish

Website  ·  Live demo  ·  Command builder  ·  Docs

ipmg scans 13 hosts with --stream, printing each one as it answers; a new address is added to the target file; a second scan with --compare reports it as a new host (warning) against the first

IPMG sweeps IPs, CIDR blocks, and ranges in parallel, remembers every scan, and tells you what changed since the last one: hosts that went down or appeared, a new MAC address or hostname behind an address, slower replies, a web service that started failing. Only the changes that matter reach Slack, Teams, a webhook, or email, or fail your cron job or CI step.

Features

  • Fast, without root. IPv4 and IPv6, CIDR blocks, ranges, and target files (text, CSV, Excel, JSON), many hosts at a time, using your system's own ping.
  • Finds hosts that block ping with TCP probes (--probe icmp,tcp), and checks web services (--http-check: status, response time, TLS, certificate expiry).
  • Names every device by reverse DNS and, on your LAN, by MAC address and vendor (--mac). Wakes them with Wake-on-LAN (ipmg wake).
  • Tells you what changed since the last scan, with a severity for each change, and alerts Slack, Teams, webhooks, or email.
  • Made for automation: exit codes for cron and CI, a GitHub Action, --json for scripts, systemd and launchd templates, Prometheus metrics.
  • IPMG Web, a local dashboard: live scans, history, changes, inventory, and scheduled scans.
  • Reports in Excel, CSV, JSON, JSON Lines, and Markdown, written as the scan runs, so an interrupted scan keeps its results.

How IPMG compares with nmap, fping, and Uptime Kuma.

Install

# Linux and macOS, no Python needed
curl -sSL https://raw.githubusercontent.com/sameeralam3127/ipmg/main/install.sh | bash
# Windows, no administrator rights
irm https://raw.githubusercontent.com/sameeralam3127/ipmg/main/install.ps1 | iex

Or from PyPI, with Python 3.10 or newer:

# With pip, in a virtual environment
pip install ipmg            # the command line
pip install "ipmg[web]"     # the command line and IPMG Web, the browser dashboard
# With pipx
pipx install "ipmg[web]"
# With uv, which fetches Python 3.10+ if you need it
uv tool install --python ">=3.10" "ipmg[web]"

Also on:

  • Homebrew: brew install sameeralam3127/tap/ipmg
  • Docker: docker run --rm sameeralam3127/ipmg --input 10.0.0.0/24, or from GHCR: ghcr.io/sameeralam3127/ipmg

Tip: [web] adds IPMG Web; pip install ipmg alone is the command line. Where the system Python is older than 3.10 (RHEL 9, Ubuntu 20.04, SLES 15), pip and pipx quietly install an older IPMG: use the installer or uv there. The install guide covers version pinning, upgrading from 3.x, and tab completion.

Quick start

ipmg --discover             # scan the network you are on, right now
ipmg --discover --compare   # later: scan again and see what changed
ipmg web --lan              # open the dashboard from any machine on your network

Every scan is saved to a local history (~/.ipmg/dashboard.db), so --compare always has the previous scan to compare with.

What a scan prints
  ipmg X.Y.Z  ·  scan
  ICMP probes only — scan only networks you are authorized to scan.

  Source   192.168.1.0/24
  Targets  254 hosts
  Config   50 threads · 2s timeout · 1 ping

  Results
  ● Active    12  ━───────────────────────   4.7%
  ● Timeout  242  ━━━━━━━━━━━━━━━━━━━━━━━━  95.3%

  254 hosts · 4.7% active · 3.1 ms avg · 5.21s · 2026-10-18 09:15:02

  Saved    results_20261018_091502.xlsx

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

Common tasks

I want to… Command
Scan the network I am on ipmg --discover
Scan hosts listed in a file, plus a few more ipmg --input targets.txt 10.0.0.5
See what changed since last time ipmg --input targets.txt --compare
Get alerted when something changes ipmg --input targets.txt --interval 15 --notify-slack
Find hosts that block ping ipmg --input 10.0.0.0/24 --probe icmp,tcp
Know which device each address is ipmg --discover --resolve --mac
Check that a web service works ipmg --http-check https://intranet.example.com/
Watch switches and routers: reboots, interfaces going down ipmg --input switches.txt --snmp --compare
See which services are listening ipmg --input targets.txt --scan-ports
Get a report I can send to someone ipmg --input targets.txt --formats md csv
Pipe the results into a script ipmg --input targets.txt --json | jq .
Fail a cron job or CI step when hosts are down ipmg --input servers.txt --fail-on-down
Wake a machine ipmg wake AA:BB:CC:DD:EE:FF
Use the dashboard from another machine ipmg web --lan
Keep it running after logout and reboots systemd and launchd templates
See every option ipmg --help, or the command reference

IPMG Web

ipmg web          # this machine: opens http://127.0.0.1:8080 in your browser
ipmg web --lan    # any machine on your network: prints the link to open

With --lan, IPMG Web prints the link with this machine's address and access token, checks the firewall, and tells you the exact command that opens the port if it is blocked (sudo ipmg web --open-firewall opens it only while IPMG Web runs). Every request needs the token in that link.

IPMG Web dashboard: scan totals, a status donut of 16 active, 1 timeout and 1 inactive host, a latency trend chart, and a list of recent scans

Dashboard, live monitor, history, changes, inventory with Wake-on-LAN, and scheduled scans; see the IPMG Web guide, or try it first in the live demo.

Documentation

Guide What is in it
Install Installers, Docker, pip, Python versions, upgrading from 3.x, tab completion, verified systems
Command reference Every command and flag with examples: targets, probes, HTTP checks, reports, history, change detection, notifications, ipmg.toml, exit codes
IPMG Web The dashboard, opening it from other machines, the firewall, scheduled scans, Prometheus metrics
Web API Scripting IPMG Web over HTTP and WebSocket
Running as a service systemd and launchd templates for scheduled scans and IPMG Web
GitHub Action Reachability checks in CI, before a deploy or on a schedule
SNMP polling Switches and routers over SNMP v2c and v3: credentials, interfaces, reboots, reports
How it compares IPMG next to nmap, fping, and Uptime Kuma
Troubleshooting and FAQ Install errors, timeouts, slow scans, empty MAC addresses, common questions
Architecture How the code fits together, for contributors

Security

IPMG runs ping as a direct process call with no shell, validates every target first, and needs no root. IPMG Web listens on 127.0.0.1 unless you pass --lan, serves everything locally, and requires its access token on every request, behind a strict Content-Security-Policy. The only outbound requests IPMG makes are the notifications and HTTP checks you ask for. Found a vulnerability? See SECURITY.md.

Contributing

Contributions are welcome. CONTRIBUTING.md covers the development setup, the tests, and the commit format that drives releases, and ARCHITECTURE.md explains the code. Everyone taking part is expected to follow the Code of Conduct.

If IPMG saves you time, a star on GitHub helps other people find it.

License

MIT — free for commercial and personal use.

Metadata

Release files for ipmg 4.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ipmg 4.2.0
File Size Uploaded Provenance Actions
ipmg-4.2.0.tar.gz 828.0 kB With provenance Details for ipmg-4.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ipmg 4.2.0
File Interpreter ABI Platform Actions
ipmg-4.2.0-py3-none-any.whl Python 3 none any Details for ipmg-4.2.0-py3-none-any.whl

Total release size: 1.6 MB

Release files / ipmg-4.2.0.tar.gz

Download URL ipmg-4.2.0.tar.gz
Size 828.0 kB
Tags Source
SHA-256 checksum
How to use checksums
105ec33e5fbd226dd86a76e3af8e8bcc0d4b9c211d4b031f13c211c0fdd30c81
BLAKE2b-256 checksum
How to use checksums
6b166d20dc3b0e3e58822cbb7f25534152402a23db2369f234df98caec743fd7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 30, 2026.

Transparency log

Release files / ipmg-4.2.0-py3-none-any.whl

Download URL ipmg-4.2.0-py3-none-any.whl
Size 758.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e2c33759f3ae052554108a798909e8e4216c0e787a59f8f3be5a725a373f0783
BLAKE2b-256 checksum
How to use checksums
c3b70d69fccf47ab4b287a735fa9c2f09356e7c791804d6816ea038ef910d2ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 30, 2026.

Transparency log

Security for ipmg 4.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for ipmg-4.2.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 30, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

4.2.0 This release

2 release files Full provenance

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