Skip to main content

Python Ping tester

Project description

dt-pinger

dt-pinger is a Python script for gathering ping statistics for one or more target hosts.

dt-pinger can be used to:

  • identify devices that are up or down on the network
  • trouble shoot network issues (dropped packets, network congestion, ...)

dt-pinger

  • Only uses standard python modules
  • Tested on Windows and Linux
  • Provides output in multiple formats (csv, json, text)
  • Is a single python file, not requiring any additional resources

Statistics captured for each host are:

  • ping timestamp
  • Source hostname
  • Target hostname
  • Packet information (sent, received, lost)
  • Round Trip Time ms (minimum, maximum, average)

Installation

To install/use dt-pinger, you may:

Use Command
github source git clone https://github.com/javawiz1/dt-pinger.git
pip pip install dt-pinger [--user]
pipx pipx install dt-pinger

Usage

usage: dt-pinger.py [-h] [-i FILENAME] [-o {csv,json,jsonf,text}] [-c COUNT] [-w WAIT] [-v] [host ...]

positional arguments:
  host                  List of one or more hosts to ping

options:
  -h, --help            show this help message and exit
  -i FILENAME, --input FILENAME
                        Input file with hostnames 1 per line
  -o {csv,json,jsonf,text}, --output {csv,json,jsonf,text}
                        Output format (default text)
  -c COUNT, --count COUNT
                        number of requests to send (default 4)
  -w WAIT, --wait WAIT  milliseconds to wait before timeout (default 2000)
  -v, --verbose

Parameters

  • You must supply either hostname(s) or the -i/--input parameter not both.
parameter Req/Opt description
host req one or more host names seperated by space (i.e. host1 host2 host3 ...)
-i / --input req text file containing hostnames
  • 1 host per line
  • Any lines beginning with # will be ignored and treated as a comment line
-o / --output opt output type
  • text default if omitted
  • json will output an unformatted json string
  • jsonf will output a formatted json string
  • csv will create a csv for use in excel
-c / --count opt Number of echo packets to send, default 4
-w / --wait opt Wait time for response (ms windows, secs linux), default 2 seconds

Running from python source

When running from the source code, cd to the source directory, then run by using one of the following commands...

    • python dt_pinger.py host1
    • python dt_pinger.py host1 [[host2][host3]...]
    • python pypinter.py -i hostlist.txt

If installed via pip or pipx

The install creates an entrypoint so that the script can be called like an executable.

    • dt-pinger host1
    • dt-pinger host1 [[host2][host3]...]
    • pypinter -i hostlist.txt

Note:
    python dt_pinger.py host1 and dt-pinger host1 are identical.

Example

python dt_pinger.py pc1 pc2 pc3 pc4 pc5 google.com

----------------------------------------
dt-pinger parameters
----------------------------------------
  Source host    : my-laptop
  Target hosts   :    20
  Worker threads :    20
  Req per host   :     4
  Wait timeout   :  2000 (ms)

                                          Packets           RTT
Source          Target                Sent Recv Lost   Min  Max  Avg  Error Msg
--------------- --------------------  ---- ---- ----  ---- ---- ----  --------------------------------------
my-laptop       pc1                      4    4    0     2    6    3
my-laptop       pc2                      4    4    0     6    9    8
my-laptop       pc3                      4    4    0     4    5    4
my-laptop       pc4                      0    0    0     0    0    0  (1) offline?
my-laptop       pc5                      4    4    0     6   18   11  
my-laptop       google.com               4    4    0    29   32   31

6 hosts processed in 7.2 seconds.

Tips

  1. Console messages are sent to stderr, output data to stdout. You can redirect stdout, to create a file with just the csv as follows:
python dt_pinger.py pc1 pc2 pc3 -o csv > pinger.csv
  1. If installed via pip or pipx, an entrypoint was created (i.e. dt-pinger.exe), so as long as you have the proper path, you can run dt-pinger (instead of cd to proper directory and running python dt_pinger.py).
    Note: dt_pinger.py vs. dt-pinger.exe (underscore vs. hyphen)

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

dt_pinger-0.1.0.tar.gz (7.7 kB view hashes)

Uploaded Source

Built Distribution

dt_pinger-0.1.0-py3-none-any.whl (8.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page