Package: pyping
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, seeAUTHORSfor more details.License: GNU GPL v2, seeLICENCEfor more details.UsageUse as a cli tool:$ sudo pyping example.com

PYTHON-PING example.com (92.243.5.143): 55 data bytes
241 bytes from example.com (92.243.5.143): icmp_seq=0 ttl=55 time=64.5 ms
241 bytes from example.com (92.243.5.143): icmp_seq=1 ttl=55 time=67.7 ms
241 bytes from example.com (92.243.5.143): icmp_seq=2 ttl=55 time=66.6 ms

----example.com PYTHON PING Statistics----
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip (ms)  min/avg/max = 64.457/66.244/67.677

$ pyping --helpUse as a Python lib:>>> import pyping
>>> r = pyping.ping('example.com')                # Need to be root or
>>> r = pyping.ping('example.com', udp = True)    # But it's udp, not real icmp
>>> r.ret_code
0
>>> r.destination
'example.com'
>>> r.max_rtt
'69.374'
>>> r.avg_rtt
'68.572'
>>> r.min_rtt
'67.681'
>>> r.destination_ip
'92.243.5.143'TodoDocsRefactor core.pyTestsContributeForkthis repo onGitHubandsendpull requests. Thank you.LinksSourcecode at GitHub:https://github.com/toxinu/pypingPython Package Index:http://pypi.python.org/pypi/pyping/History2012-06-05Cleanup projet (by toxinu):
- Add Cli parser
- Can be used as python library
- Added to pypi
- Some Fixes
- Clean2011-10-17Bugfixif host is unknown2011-10-12Merge sources and create a seperate githubrepositoryand add a simple CLI interface.2011-09-12Bugfixes + cleanup by Jens Diemer. Tested with Ubuntu + Windows 7.2011-09-06Cleanupby Martin Falatic :
- Restored lost comments and docs. Improved functionality: constant time between pings, internal times consistently use milliseconds. Clarified annotations (e.g., in the checksum routine)
- Using unsigned data in IP & ICMP header pack/unpack unless otherwise necessary.
- Signal handling
- Ping-style output formatting and stats2011-08-03Ported to py3k by Zach Ware. Mostly done by 2to3; also minor changes to deal with bytes vs. string changes (no more ord() in checksum() because >source_string< is actually bytes, added .encode() to data in send_one_ping()). That’s about it.2010-03-11Changes by Samuel Stauffer:
- Replaced time.clock with default_timer which is set to time.clock on windows and time.time on other systems.2009-11-08Fixes byGeorge Notaras, reported byChris Hallman:
- Improved compatibility with GNU/Linux systems.
- Re-use time.time() instead of time.clock(). The 2007 implementation worked only under Microsoft Windows. Failed on GNU/Linux. time.clock() behaves differently under the twoOSes.2007-06-30Little rewrite byJens Diemer:
- Change socket asterisk import to a normal import
- Replace time.time() with time.clock()
- Delete “return None” (or change to “return” only)
- In checksum() rename “str” to “source_string”2000-12-04Changed the struct.pack() calls to pack the checksum and ID as unsigned. My thanks to Jerome Poincheval for the fix.1997-12-16For some reason, the checksum bytes are in the wrong order when this is run under Solaris 2.X for SPARC but it works right under Linux x86. Since I don’t know just what’s wrong, I’ll swap the bytes always and then do an htons().1997-11-22Initial hack. Doesn’t do much, but rather than try to guess what features I (or others) will want in the future, I’ve only put in what I need now.