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

python-ping的Python项目详细描述


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

注意,ICMP消息只能从以根用户身份运行的进程发送 (在Windows中,必须以“管理员”身份运行此脚本)。

来自Matthew Dixon Cowles

的原始版本
  • python ping团队的copyleft 1989-2011,请参见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界面
  • 使用输出解析器添加“supprocess ping”

贡献

Fork this repoGitHubsend pull requests上。谢谢您。

修订历史

2011年10月12日

合并源并创建单独的github存储库:

添加一个简单的cli界面。

2011年9月12日

Jens Diemer的错误修复+清理 使用ubuntu+windows 7进行测试

2011年9月6日

Cleanup by Martin Falatic. 恢复丢失的评论和文档。改进的功能:恒定的时间间隔 pings,内部时间始终使用毫秒。澄清注释 (例如,在校验和程序中)。在IP&ICMP头中使用未签名数据 包装/拆箱,除非另有必要。信号处理。ping样式输出 格式化和统计。

2011年8月3日

由扎克·威尔移植到PY3K。主要由2to3完成;对 处理字节与字符串的变化(校验和中不再有ord(),因为 >;source_string<;实际上是字节,已将.encode()添加到中的数据 发送一个)。就这样。

2010年3月11日

Samuel Stauffer的变化: 将time.clock替换为默认的计时器,该计时器设置为 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()在the two OSes下的行为不同。

2007年5月30日

rewrite by Jens Diemer

  • 将套接字星号导入更改为普通导入
  • 将time.time()替换为time.clock()
  • 删除“return none”(或更改为“return”(仅限返回)
  • 在checksum()中,将“str”重命名为“source_string”

2000年12月4日

将struct.pack()调用更改为将校验和和ID打包为 未签名的。感谢杰罗姆·波因奇瓦尔的修复。

1997年11月22日

最初的黑客。做的不多,但不是去猜测 我(或其他人)将来想要什么样的功能,我只有 把我现在需要的东西放进去。

1997年12月16日

由于某些原因,当 这是在Solaris 2 .x上运行的,但它的工作原理是正确的。 Linux x86。既然我不知道怎么了,我就把 字节总是然后做一个htons()。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
iframe struts2中的java显示文档文件   java Graal SDK在应用程序运行时工作,但在单元测试中失败   java无法更新开放NLP模型   Selenium测试的javascript XPath标识   java Intellij不显示依赖项的源,但始终显示中JAR的反编译类。平方米   java如何在SWT中使用数据绑定启用和禁用按钮   bigdecimal Java:对2^1000的所有数字求和   java 安卓 tween动画:坐标在translate中是如何工作的?   java如何在Velocity中迭代列表项并显示预期结果   Java继承为什么这个toString打印BB而不是AB,AB?   java如何使程序等待设定的时间量?   java Eclipse是否有现成的GUI构建器?   java如何将公共EC代码点和曲线名称转换为公钥?   java Selenium 3 InternetExplorerDriver设置   java与Junit4兼容。十、   java有没有办法在Solr中实现IntRangeField?   java Spring数据JPA审核在Spring启动项目中的更新期间不起作用   Java代码重构问题   基于Java行中的单词比较文本行的字符串   java NumberFormatException在解析整数时抛出