Ping multiple servers and show the result in a top like terminal UI.
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.
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.
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