python中ping的一种简单方法
pythonping的Python项目详细描述
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
模块的文档。