{"id":13477328,"url":"https://github.com/laixintao/pingtop","last_synced_at":"2025-04-12T22:34:28.817Z","repository":{"id":44892113,"uuid":"178883750","full_name":"laixintao/pingtop","owner":"laixintao","description":"🏓Ping multiple servers and show results in a top-like terminal UI.","archived":false,"fork":false,"pushed_at":"2022-09-23T04:51:45.000Z","size":187,"stargazers_count":513,"open_issues_count":8,"forks_count":38,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-04T01:40:59.365Z","etag":null,"topics":["icmp","ping","top","tui"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/pingtop/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/laixintao.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-04-01T14:42:20.000Z","updated_at":"2025-03-12T23:09:13.000Z","dependencies_parsed_at":"2022-08-01T02:08:51.213Z","dependency_job_id":null,"html_url":"https://github.com/laixintao/pingtop","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laixintao%2Fpingtop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laixintao%2Fpingtop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laixintao%2Fpingtop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laixintao%2Fpingtop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/laixintao","download_url":"https://codeload.github.com/laixintao/pingtop/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248640887,"owners_count":21138108,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["icmp","ping","top","tui"],"created_at":"2024-07-31T16:01:41.191Z","updated_at":"2025-04-12T22:34:28.796Z","avatar_url":"https://github.com/laixintao.png","language":"Python","funding_links":[],"categories":["Python","Network and Middleware","System"],"sub_categories":["Ethernet and Wireless Networking","Network and Middleware"],"readme":"pingtop \n=======\n\n\nPing multiple servers and show the result in a top like terminal UI.\n\n|asciicast|\n\nInstall\n-------\n\n::\n\n   pip install pingtop\n\n\n** pingtop support Python3.8 Python3.8. **\n\nThere is a dependency (`blist \u003chttp://stutzbachenterprises.com/blist/\u003e`) not supporting Python3.9, so please pingtop can't support 3.9.\n\nUsage\n-----\n\nThen ping mutiple server:\n\n::\n\n   pingtop baidu.com google.com twitter.com\n\nThis project is using\n`click \u003chttps://click.palletsprojects.com/en/7.x/\u003e`__. Check help info\nwith ``pingtop -h``.\n\n::\n\n   ~ pingtop --help\n   Usage: pingtop [OPTIONS] [HOST]...\n\n   Options:\n     -s, --packetsize INTEGER        specify the number of data bytes to be sent.\n                                     The default is 56, which translates into 64\n                                     ICMP data bytes when combined with the 8\n                                     bytes of ICMP header data.  This option\n                                     cannot be used with ping sweeps.  [default:\n                                     56]\n     -l, --logto PATH\n     -v, --log-level [DEBUG|INFO|WARNING|ERROR|CRITICAL]\n     --help                          Show this message and exit.\n\nWhy do I get ``Permission denied`` ?\n------------------------------------\n\nWe use ICMP socket to send ping packet without ``sudo`` (See `this\npost \u003chttps://blog.lilydjwg.me/2013/10/29/non-privileged-icmp-ping.41390.html\u003e`__\nby lilydjwg(in Chinese)), however, who(which group) can use this feature\nis controled by a kernel parameter: ``net.ipv4.ping_group_range``.\n\n::\n\n   cat /proc/sys/net/ipv4/ping_group_range\n\n   1    0\n\nThe default value is ``1 0``, this means the whose group number from 1\nto 0 can use this feature(which means nobody can use this), so you get a\nPermission denied .\n\nTo fix this, change this variable to a proper range include your group\nid, like this:\n\n::\n\n   [vagrant@centos7 pingtop]$ id\n   uid=1000(vagrant) gid=1000(vagrant) groups=1000(vagrant) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023\n\n   [vagrant@centos7 pingtop]$ sudo sysctl -w net.ipv4.ping_group_range='0 1001'\n   net.ipv4.ping_group_range = 0 1001\n\nCredits\n-------\n\n-  For the credits of ping.py’s implementation please refer\n   `ping.py \u003c./pingtop/ping.py\u003e`__.\n-  The UI was built on `panwid \u003chttps://github.com/tonycpsu/panwid\u003e`__\n   thanks to @tonycpsu.\n-  @\\ `gzxultra \u003chttps://github.com/gzxultra\u003e`__ helped to solve the\n   permission issues.\n\n.. |CircleCI| image:: https://circleci.com/gh/laixintao/pingtop.svg?style=svg\n   :target: https://circleci.com/gh/laixintao/pingtop\n.. |asciicast| image:: https://asciinema.org/a/onbBCmHzhltau7iqButUGx6yu.svg\n   :target: https://asciinema.org/a/onbBCmHzhltau7iqButUGx6yu\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaixintao%2Fpingtop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flaixintao%2Fpingtop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaixintao%2Fpingtop/lists"}