简单使用ping持续测试网络状态

  1. 持续 ping 给定的 4 个 IP。
  2. 在 1 小时内运行脚本。
  3. 如果发现 IP 有丢包,则将丢包的 IP 和丢包的持续时间记录到 ping_result.txt 中。
  4. ping_result.txt中包含了单个 IP 丢包持续时间,所有 IP 丢包持续时间,单个 IP 丢包次数,和所有 IP 丢包汇总次数的汇总数据。
  5. 脚本支持在 Windows 环境下运行。
    import time
    import os
    
    hosts = ["10.4.1.100", "10.4.1.101", "10.4.1.102", "10.4.1.103"]
    duration = 3600  # 运行时间 1 小时
    interval = 1  # ping 一次的时间间隔,单位:秒
    
    result_file = "ping_result.txt"
    with open(result_file, "w", encoding="utf-8") as f:
        # 初始化各项汇总数据
        total_host_lost_duration = {}
        for host in hosts:
            total_host_lost_duration[host] = 0
    
        total_lost_duration = 0
        total_lost_count = 0
    
        start_time = time.time()
        while time.time() - start_time <= duration:
            for host in hosts:
                response = os.system("ping -n 1 " + host + " >nul")
                if response != 0:
                    print(host + " 丢包")
                    lost_duration = interval  # 丢包的持续时间为 interval
                    total_host_lost_duration[host] += lost_duration
                    total_lost_duration += lost_duration
                    total_lost_count += 1
    
                    record = "{} 在第 {} 秒开始丢包,已持续 {} 秒\n".format(
                        host, int((time.time() - start_time) - interval), lost_duration
                    )
                    f.write(record)
    
            time.sleep(interval)
    
        # 输出汇总信息
        f.write("\n汇总信息:\n")
        for host in hosts:
            f.write("{} 丢包 {} 次,共持续 {} 秒\n".format(host, total_host_lost_duration[host] // interval, total_host_lost_duration[host]))
        f.write("所有 IP 一共丢包 {} 次,共持续 {} 秒\n".format(total_lost_count, total_lost_duration))
    

    结果文件显示:

    10.4.1.100 在第 57 秒开始丢包,已持续 1 秒
    10.4.1.101 在第 57 秒开始丢包,已持续 1 秒
    10.4.1.102 在第 57 秒开始丢包,已持续 1 秒
    10.4.1.103 在第 57 秒开始丢包,已持续 1 秒
    10.4.1.100 在第 58 秒开始丢包,已持续 1 秒
    10.4.1.101 在第 58 秒开始丢包,已持续 1 秒
    10.4.1.102 在第 58 秒开始丢包,已持续 1 秒
    10.4.1.103 在第 58 秒开始丢包,已持续 1 秒
    
    汇总信息:
    10.4.1.100 丢包 33 次,共持续 33 秒
    10.4.1.101 丢包 33 次,共持续 33 秒
    10.4.1.102 丢包 33 次,共持续 33 秒
    10.4.1.103 丢包 33 次,共持续 33 秒
    所有 IP 一共丢包 132 次,共持续 132 秒

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值