pythonping
python ping是python中ping的简单方法。使用它,您可以像从终端发送icmp探测一样将icmp探测发送到远程设备。pythonping是模块化的,因此您可以将它作为一个独立的函数在脚本中运行,或者将其组件集成到一个成熟的应用程序中。
基本用法
pythonping最简单的用法是在脚本中。可以使用ping函数ping目标。如果希望立即看到输出,模拟终端上发生的情况,请使用下面的verbose标志。frompythonpingimportpingping('127.0.0.1',verbose=True)
这将导致以下结果。Reply from 127.0.0.1, 9 bytes in 0.17ms
Reply from 127.0.0.1, 9 bytes in 0.14ms
Reply from 127.0.0.1, 9 bytes in 0.12ms
Reply from 127.0.0.1, 9 bytes in 0.12ms
不管详细模式如何,ping函数都将返回一个ResponseList对象。这是一个特殊的iterable对象,包含Response项的列表。在每个响应中,您都可以找到接收到的数据包和一些元信息,比如接收响应所花的时间和任何错误消息。
您还可以使用ping的一些附加参数来调整ping:size是一个整数,允许您指定所需icmp负载的大小
timeout是在假定目标无法到达之前,您希望等待响应的秒数
payload允许您使用特定的负载(字节)
count指定允许您定义要发送的ICMP数据包的数量
sweep_start和sweep_end允许您执行ping扫描,从sweep_start中定义的负载大小开始,一直到sweep_end中定义的大小。在这里,我们重复您提供的负载以匹配所需的大小,或者如果没有提供负载,我们生成一个随机负载。注意,如果定义了size,这两个字段将被忽略
df是一个标志,如果设置为true,将启用IP头中的不分段标志
verbose启用详细模式,将输出打印到流(请参见out)
out是详细模式的目标流。如果启用详细模式,但不提供out,详细输出将发送到sys.stdout流。例如,您可能想在这里使用一个文件。
高级用法
如果希望扩展python ping或将其集成到应用程序中,我们建议使用python ping的一部分类,而不是ping函数。
executor.Communicator处理与目标设备的通信,它负责发送icmp请求和处理响应。它最终生成executor.ResponseList对象。Communicator需要知道目标和要发送到远程设备的有效负载。为此,我们在payload_provider模块中有几个类。您可能希望通过扩展payload_provider.PayloadProvider创建自己的提供者。如果您对此感兴趣,应该检查executor和payload_provider模块的文档。
欢迎加入QQ群-->: 979659372
推荐PyPI第三方库