Skip to main content

PingPoll

A small Flask library and app that pings a list of network devices, resolves their hostnames, and shows live status, latency and uptime on a dashboard — plus a subnet discovery sweep to find live hosts that aren't on your list yet.

Install

pip install -e .

Run

pingpoll --init        # write an example NetFile into the current directory
pingpoll               # serve the dashboard on http://localhost:5001

Or without installing:

pip install -r requirements.txt
python run.py

Use as a library

from pingpoll import serve
serve("NetFile", port=5001)          # blocking dev server
from pingpoll import create_app       # build the Flask app (e.g. for gunicorn)
app = create_app("NetFile")
from pingpoll import Monitor, Scanner # the pieces on their own

How it works

  • NetFile — your device list. One entry per line: <ip_or_host> [optional friendly name]. Lines starting with # are ignored. The path defaults to $PINGPOLL_NETFILE, else ./NetFile.
  • pingpoll.monitor — a background thread pings every device on an interval (default 10s), keeps rolling history, and computes uptime %, average latency, and up/down transitions. Hostnames are reverse-resolved.
  • pingpoll.app — the Flask app factory serving the dashboard and JSON API.
  • templates/ + static/ — the dashboard (auto-refreshes every 5s).

Network discovery

PingPoll can sweep your local subnet to find live hosts that aren't in the NetFile. It auto-detects the local /24 (and any private /24s implied by addresses already in the NetFile), pings every host, resolves hostnames, and flags each as In NetFile (defined) or Undefined.

  • In the dashboard: click Scan network. Undefined hosts get a checkbox; select the ones you want and click Add selected to NetFile to append them (with their resolved hostname) and start monitoring immediately.

  • From the terminal:

    pingpoll --scan
    

    prints a table of every live host and whether it's defined.

CLI

pingpoll [--netfile PATH] [--port 5001] [--host 0.0.0.0] [--open] [--debug]
pingpoll --init     # write an example NetFile and exit
pingpoll --scan     # one-off terminal subnet scan and exit

API

Endpoint Method Purpose
/ GET Dashboard
/api/status GET Full status snapshot (JSON)
/api/reload POST Re-read the NetFile without restarting
/api/scan POST Start a subnet discovery sweep
/api/discovery GET Discovery results + progress (JSON)
/api/adopt POST Append discovered hosts to the NetFile

Configuration

Tunables live at the top of pingpoll/monitor.py: PING_INTERVAL, PING_TIMEOUT, HISTORY_LEN, WORKERS. Ping flags auto-adjust for macOS / Linux / Windows.

Metadata

Release files for pingpoll 0.1.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 pingpoll 0.1.0
File Size Uploaded
pingpoll-0.1.0.tar.gz 16.8 kB Details

Built distribution (wheel)

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

Total release size: 34.4 kB

Release files / pingpoll-0.1.0.tar.gz

Download URL pingpoll-0.1.0.tar.gz
Size 16.8 kB
Tags Source
SHA-256 checksum
How to use checksums
9597bb8f2a03e4eaeb06ec5fe51e8b82c9f796b45a6e4fccb28e6d6255c63c0a
BLAKE2b-256 checksum
How to use checksums
11f924ce489260346b60f98cbdbb167d31b18d446e803a9eef632e1f4d471e3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release files / pingpoll-0.1.0-py3-none-any.whl

Download URL pingpoll-0.1.0-py3-none-any.whl
Size 17.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3141f714aee9dc27ce6753b6a0365a7975a860e2e725e30e8be555fd5b6a30ce
BLAKE2b-256 checksum
How to use checksums
781c9ed1ccc6994a146dbf53ef3e45765747047f0d404fb1ac9abc14e58c462f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release 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