pythonping
是一个用于在 Python 中执行 ICMP ping 请求的第三方库。它允许你发送 ICMP Echo 请求并接收 ICMP Echo 回复,从而检测网络上的主机是否可达。
安装pythonping库
pip intall pythonping
使用程序进行ping测试
示例代码如下:
import pythonping
result = pythonping.ping('www.baidu.com', count=3)
if "Reply" in str(result):
print("Ping successful")
else:
print("Ping failed")
pythonping库参数说明
参数:
- target: 要 ping 的目标主机名或 IP 地址。
- count: 尝试 ping 的次数。
- size: 要发送的整个数据包的大小。如果设置了此参数,它将覆盖
sweep_start
和sweep_end
。 - interval: 两次 ping 请求之间的等待时间(秒)。
- payload (Union[str, bytes]): 负载内容,如果设置了
size
参数并且想要使用自定义负载,可以提供此参数。如果为 None,则可能使用随机文本。 - sweep_start (int): 如果未设置
size
,则在大小扫描中的初始大小。用于执行一系列不同大小的 ping 请求。 - sweep_end (int): 如果未设置
size
,则在大小扫描中的最终大小。 - df (bool): IP 头部的“不分片”标志的值。如果为 True,则设置不分片标志,这可能导致某些大于路径 MTU 的数据包被丢弃。
- verbose (bool): 在执行操作时是否打印输出。
返回值:
该函数返回一个 PingResult
对象,其中包含有关 ping 操作的信息,如发送的请求数、接收到的回复数、丢包率等。
结果方法:
- packet_loss: 丢包率。
- packets_lost:丢包率,同packet_loss。
- rtt_avg:RTT平均值(秒)。
- rtt_avg_ms:RTT平均值(毫秒)。
- rtt_max、rtt_max_ms、rtt_min、rtt_min_ms:RTT最大值、最小值。
- success(SuccessOn.One),是否成功,默认One即只要有一个包成功则返回True。可根据需求设置为SuccessOn.Most,SuccessOn.All(全部成功才返回True,否则为False)。【使用SuccessOn需进行导入"from pythonping.executor import SuccessOn"】