Skip to main content

A pure python ICMP ping implementation using raw sockets.

Project description

A pure python ping implementation using raw sockets.

Note that ICMP messages can only be sent from processes running as root (in Windows, you must run this script as ‘Administrator’).

Original Version from Matthew Dixon Cowles

  • copyleft 1989-2011 by the python-ping team, see AUTHORS for more details.

  • license: GNU GPL v2, see LICENSE for more details.

Usage

~/python3-ping$ sudo ./ping.py google.com

PYTHON-PING google.com (209.85.148.99): 55 data bytes
64 bytes from google.com (209.85.148.99): icmp_seq=0 ttl=54 time=56.2 ms
64 bytes from google.com (209.85.148.99): icmp_seq=1 ttl=54 time=55.7 ms
64 bytes from google.com (209.85.148.99): icmp_seq=2 ttl=54 time=55.5 ms

----google.com PYTHON PING Statistics----
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip (ms)  min/avg/max = 55.468/55.795/56.232

~/python3-ping]# ./ping.py
usage: ping.py [-h] [-q] [-c COUNT] [-W TIMEOUT] [-s PACKET_SIZE] destination
ping.py: error: the following arguments are required: destination

TODOs

  • refactor ping.py

  • add a “suprocess ping”, with output parser

New Features

  • CLI interface -> thanks for Yu-Jie Lin to add this feature with argparse module

Contribute

Fork this repo on GitHub and send pull requests. Thank you.

History

See HISTORY.rst.

Supported by

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