zoukankan      html  css  js  c++  java
  • ping ip

    def ip_and_time():
        """
        get ip to ping from ip.txt
        then return two list , each ip that ping successfully and the delay time of them
        :return
        """
    
        time_list, ip_list = [], []
        ip_txt = open('ip.txt', 'w')
        ip_success, ip_fail = 0, 0
        log_write = open('log.txt', 'a')
        for ip in get_ip():
            # 每个ip ping2次,等待时间为1s
            cmd_return = os.popen('ping -n 2 -w 1 %s' % ip).read()
            if 'ms' in cmd_return:
                ip_list.append(ip.strip())
                delay = cmd_return[cmd_return.rfind('='):]
                delay_time = int(delay.replace('ms', '').replace('=', ''))
                if delay_time <= 50:
                    delay_time = 150
                    time_list.append(delay_time)
                    ip_success += 1
                elif 50 < int(delay_time) <= 100:
                    delay_time = 200
                    time_list.append(delay_time)
                    ip_success += 1
                elif 100 < int(delay_time) <= 150:
                    delay_time = 250
                    time_list.append(delay_time)
                    ip_success += 1
                elif 150 < int(delay_time) <= 200:
                    delay_time = 300
                    time_list.append(delay_time)
                    ip_success += 1
                elif 200 < int(delay_time) <= 250:
                    delay_time = 350
                    time_list.append(delay_time)
                    ip_success += 1
                elif 250 < int(delay_time) <= 300:
                    delay_time = 400
                    time_list.append(delay_time)
                    ip_success += 1
                elif 300 < int(delay_time) <= 350:
                    delay_time = 450
                    time_list.append(delay_time)
                    ip_success += 1
                elif 350 < int(delay_time) <= 400:
                    delay_time = 500
                    time_list.append(delay_time)
                    ip_success += 1
                else:
                    delay_time = 550
                    time_list.append(delay_time)
                    ip_success += 1
            elif len(cmd_return) <= 160:
                # 当ping2次时窗口输出字符串长度小于160记为超时,否则记为传输过期
                ip_list.append(ip.strip())
                time_list.append(400)
                ip_fail += 1
            else:
                ip_list.append(ip.strip())
                time_list.append(400)
                ip_fail += 1
    
        log_write.close()
        ip_txt.close()
        return ip_list, time_list
  • 相关阅读:
    B树、B树、B+树、B*树
    CSS黑客技术的实现
    ORM映射框架总结SQL 语句生成组件
    突然发现 ViewState,Linq 水火不容
    ALinq 入门学习(一)ALinq简介
    Google 地图基本接口(一)
    ORM映射框架总结映射桥梁
    ALinq 入门学习(二)DataContext
    ORM映射框架总结数据库操作库(精修版)
    C# 使用线程你可能不知道的问题
  • 原文地址:https://www.cnblogs.com/vickey-wu/p/8274578.html
Copyright © 2011-2022 走看看