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库参数说明

参数:

  1. target: 要 ping 的目标主机名或 IP 地址。
  2. count: 尝试 ping 的次数。
  3. size: 要发送的整个数据包的大小。如果设置了此参数,它将覆盖 sweep_start 和 sweep_end
  4. interval: 两次 ping 请求之间的等待时间(秒)。
  5. payload (Union[str, bytes]): 负载内容,如果设置了 size 参数并且想要使用自定义负载,可以提供此参数。如果为 None,则可能使用随机文本。
  6. sweep_start (int): 如果未设置 size,则在大小扫描中的初始大小。用于执行一系列不同大小的 ping 请求。
  7. sweep_end (int): 如果未设置 size,则在大小扫描中的最终大小。
  8. df (bool): IP 头部的“不分片”标志的值。如果为 True,则设置不分片标志,这可能导致某些大于路径 MTU 的数据包被丢弃。
  9. verbose (bool): 在执行操作时是否打印输出。

返回值:

该函数返回一个 PingResult 对象,其中包含有关 ping 操作的信息,如发送的请求数、接收到的回复数、丢包率等。

结果方法:

  1. packet_loss: 丢包率。
  2. packets_lost:丢包率,同packet_loss。
  3. rtt_avg:RTT平均值(秒)。
  4. rtt_avg_ms:RTT平均值(毫秒)。
  5. rtt_max、rtt_max_ms、rtt_min、rtt_min_ms:RTT最大值、最小值。
  6. success(SuccessOn.One),是否成功,默认One即只要有一个包成功则返回True。可根据需求设置为SuccessOn.Most,SuccessOn.All(全部成功才返回True,否则为False)。【使用SuccessOn需进行导入"from pythonping.executor import SuccessOn"】