gpt4 book ai didi

python - 在 Python 中使用 fping 获取 ping 时间

转载 作者:行者123 更新时间:2023-11-30 23:36:49 25 4
gpt4 key购买 nike

我有一个 IP 列表(从 Python Scapy 中的跟踪路由生成),我需要发送 3 个 ping 来测量每个跃点的平均时间。我的第一个方法是使用套接字构建 ICMP 请求并测量响应时间。但当 ping 多个主机时,它不准确且缓慢。我确实尝试过使用普通的 Linux ping,但是我的 for i 循环在等待响应时被阻塞,显然我希望所有 ping 请求同时发送出去。

所以我正在寻找一种在 Linux 中使用 fping 的方法,我给出一个 IP 列表,然后让它完成构建数据包的工作。但我不确定如何将参数列表传递给 shell 命令或将数据返回到数组中以在完成后进行进一步处理。

感谢任何指点!

最佳答案

我不太了解fping,但类似这样的东西......

import subprocess

CMD = ['fping', 'param1', 'param2']

result = subprocess.check_output(CMD)

...将运行 fping param1 param2,并将输出作为字符串放入 result 变量中,一旦 fping 进程完成终止。

您可以使用 result.splitlines() 将输出分割成行。

这是一个快速的单行示例,使用 ping 获取对本地主机的 3 次 ping 时间...

>>> [line.rpartition('=')[-1] for line in subprocess.check_output(['ping', '-c', '3', 'localhost']).splitlines()[1:-4]]
['0.028 ms', '0.023 ms', '0.025 ms']

关于python - 在 Python 中使用 fping 获取 ping 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16155921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com