Skip to content
🏓Ping multiple servers and show results in a top-like terminal UI.
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci setup tests Apr 20, 2019
tests temp drop py27 Apr 20, 2019
.bumpversion.cfg Bump version: 0.2.10 → 0.2.11 May 11, 2019
.gitignore setup project. Apr 1, 2019
LICENSE Create LICENSE Apr 9, 2019 package project with readme file Apr 9, 2019
README.rst update readme: typo and credits Apr 12, 2019 refactor log config May 7, 2019 Bump version: 0.2.10 → 0.2.11 May 11, 2019
tox.ini temp drop py27 Apr 20, 2019




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



pip install pingtop


Then ping mutiple server:


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

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

  -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:
  -l, --logto PATH
  --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


  • For the credits of’s implementation please refer
  • The UI was built on panwid thanks to @tonycpsu.
  • @gzxultra helped to solve the permission issues.
You can’t perform that action at this time.