跳转到主要内容

使用原始套接字实现的纯Python ICMP ping。

项目描述

使用原始套接字实现的纯Python ping。

注意,ICMP消息只能由作为root运行的进程发送(在Windows中,您必须以“管理员”身份运行此脚本)。

原始版本来自 Matthew Dixon Cowles

  • 版权所有 1989-2011,python-ping 团队,有关更多详细信息,请参阅 AUTHORS

  • 许可证:GNU GPL v2,有关更多详细信息,请参阅 LICENSE

用法

~/python-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

待办事项

  • 重构ping.py

  • 创建一个CLI界面

  • 添加“子进程ping”,带有输出解析器

贡献

在GitHub上分支此存储库发送拉取请求。谢谢。

修订历史

2011年10月12日

合并源代码并创建单独的GitHub存储库

添加简单的CLI界面。

2011年9月12日

错误修复和清理由Jens Diemer完成。在Ubuntu + Windows 7上测试。

2011年9月6日

由 Martin Falatic 清理。 恢复了丢失的注释和文档。改进功能:ping 之间的时间恒定,内部时间始终使用毫秒。澄清了注释(例如,在校验和例程中)。除非必要,否则在 IP & ICMP 头的打包/解包中使用无符号数据。信号处理。Ping 样式输出格式和统计。

2011年8月3日

由 Zach Ware 转移到 py3k。大部分是通过 2to3 完成的;还对字节与字符串的变化做了小的修改(由于 >source_string< 实际上是字节,所以 checksum() 中不再使用 ord(),在 send_one_ping() 中的数据添加了 .encode())。就这么多。

2010年3月11日

Samuel Stauffer 的修改:将 time.clock 替换为 default_timer,在 Windows 上设置为 time.clock,在其他系统上设置为 time.time。

2009年11月8日

George Notaras 的修正,由 Chris Hallman 报告

提高了与 GNU/Linux 系统的兼容性。

本版本中的更改

重新使用 time.time() 而不是 time.clock()。2007 年的实现仅在 Microsoft Windows 上工作。在 GNU/Linux 上失败。time.clock() 在两个操作系统下的行为不同。

2007年5月30日

Jens Diemer 的小 重写

  • 将 socket 星号导入改为正常导入

  • 将 time.time() 替换为 time.clock()

  • 删除“return None”(或改为“return”)

  • 在 checksum() 中将“str”重命名为“source_string”

2000年12月4日

将 struct.pack() 调用更改为将校验和和 ID 打包为无符号。感谢 Jerome Poincheval 的修复。

1997年11月22日

初始修改。没有做很多事情,但与其猜测我(或其他人)将来想要哪些功能,我只想放进去我现在需要的。

1997年12月16日

由于某种原因,当在 Solaris 2.X for SPARC 下运行时,校验和字节顺序错误,但在 Linux x86 下运行正确。由于我不知道具体是什么问题,我将始终交换字节,然后进行 htons()。

项目详情


下载文件

下载适合您平台的文件。如果您不确定要选择哪个,请了解更多关于 安装软件包 的信息。

源分发

python-ping-2011.10.12.1d8e600.tar.gz (5.3 kB 查看哈希值)

上传时间

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面