Python如何执行Ping操作并获取平均延迟速度
实现Ping平均延迟获取的方案
1. 安装依赖库
使用你提到的pythonping库实现,无需手动解析系统ping命令的输出,可直接获取延迟数值,执行以下命令安装:
pip install pythonping
2. 完整修改后的代码
import time, requests from pythonping import ping url = 'WEBHOOK URL' hostname = "google.com" # 配置ping的次数,次数越多平均延迟统计结果越准确,这里设为4次 ping_count = 4 while True: try: # 执行ping操作,超时时间设为2秒 ping_result = ping(hostname, count=ping_count, timeout=2) if ping_result.success(): # 直接获取平均延迟,单位为毫秒 avg_latency = ping_result.rtt_avg_ms print(f"{hostname} is online! Average = {avg_latency}ms") data = { "content" : "Message content", "username" : "Author name" } data["embeds"] = [ { "description" : f"Google is online,平均延迟:{avg_latency}ms", "title" : "TITLE EMBEDS" } ] requests.post(url, json = data) else: print(f"{hostname} is down!") data = { "content" : "Message content", "username" : "Author name" } data["embeds"] = [ { "description" : "Google is offline", "title" : "TITLE EMBEDS" } ] requests.post(url, json = data) except Exception as e: print(f"检测出错:{str(e)}") # 无论检测结果如何,统一等待900秒后重试 time.sleep(900)
关键说明
pythonping的ping方法返回结果中,rtt_avg_ms属性直接返回多次ping的平均往返延迟,单位为毫秒,无需手动计算- 你可以调整
ping_count参数的数值,设置为1就是单次ping的延迟,数值越大统计的平均延迟越稳定 - 代码已顺手修正原有拼写错误:
onligne/offligne/TITTLE - 如果你不想使用第三方库,也可以改用
os.popen读取系统ping命令的输出内容,再用正则提取延迟数值,但不同系统的ping输出格式不同,适配成本较高,使用pythonping可以直接规避跨平台兼容问题
内容的提问来源于stack exchange,提问作者Akyna
相关产品推荐
相关产品推荐

