Skip to main content

Ping multiple servers and show the result in a top like terminal UI.

Project description

Ping multiple servers and show the result in a top like terminal UI.

asciicast

Install

pip install pingtop

** pingtop support Python3.8 Python3.8. **

There is a dependency (blist <http://stutzbachenterprises.com/blist/>) not supporting Python3.9, so please pingtop can’t support 3.9.

Usage

Then ping mutiple server:

pingtop baidu.com google.com twitter.com

This project is using click. Check help info with pingtop -h.

~ pingtop --help
Usage: pingtop [OPTIONS] [HOST]...

Options:
  -s, --packetsize INTEGER        specify the number of data bytes to be sent.
                                  The default is 56, which translates into 64
                                  ICMP data bytes when combined with the 8
                                  bytes of ICMP header data.  This option
                                  cannot be used with ping sweeps.  [default:
                                  56]
  -l, --logto PATH
  -v, --log-level [DEBUG|INFO|WARNING|ERROR|CRITICAL]
  --help                          Show this message and exit.

Why do I get Permission denied ?

We use ICMP socket to send ping packet without sudo (See this post by lilydjwg(in Chinese)), however, who(which group) can use this feature is controled by a kernel parameter: net.ipv4.ping_group_range.

cat /proc/sys/net/ipv4/ping_group_range

1    0

The default value is 1 0, this means the whose group number from 1 to 0 can use this feature(which means nobody can use this), so you get a Permission denied .

To fix this, change this variable to a proper range include your group id, like this:

[vagrant@centos7 pingtop]$ id
uid=1000(vagrant) gid=1000(vagrant) groups=1000(vagrant) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

[vagrant@centos7 pingtop]$ sudo sysctl -w net.ipv4.ping_group_range='0 1001'
net.ipv4.ping_group_range = 0 1001

Credits

  • For the credits of ping.py’s implementation please refer ping.py.

  • The UI was built on panwid thanks to @tonycpsu.

  • @gzxultra helped to solve the permission issues.

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

pingtop-0.4.2.tar.gz (10.6 kB view details)

Uploaded Source

File details

Details for the file pingtop-0.4.2.tar.gz.

File metadata

  • Download URL: pingtop-0.4.2.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.6

File hashes

Hashes for pingtop-0.4.2.tar.gz
Algorithm Hash digest
SHA256 5e5e3d9e95570a022be7ea13ffe99cdf148b74c975325c3567f3c52a86d2c6ab
MD5 5ddd3423f5d9161584f9b2b88ee81cba
BLAKE2b-256 916fc231428c63991577cfe5f557d97f776207bddd9e3aa487bf15351c0e2762

See more details on using hashes here.

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