• 网卡流量检测.py


    network_speed网卡流量检测

    #!/usr/bin/env python
    #coding:utf-8
    
    import sys
    import os
    
    import atexit
    import time
    import psutil
    
    #print "Welcome,current system is",os.name," 3 seconds late start to get data..."      
    time.sleep(3)
    
    line_num = 1
    
    #function of Get CPU State;  
    def getCPUstate(interval=1):
        return (" CPU: " + str(psutil.cpu_percent(interval)) + "%")
    #function of Get Memory      
    def getMemorystate():
            phymem = psutil.virtual_memory()
            line = "Memory: %5s%% %6s/%s"%(
                phymem.percent,
                str(int(phymem.used/1024/1024))+"M",
                str(int(phymem.total/1024/1024))+"M"
                )
            return line
    def bytes2human(n):
            """    
            >>> bytes2human(10000)    
            '9.8 K'    
            >>> bytes2human(100001221)    
            '95.4 M'    
            """
            for s in reversed(symbols):
                    if n >= prefix[s]:
            return '%.2f B' % (n)
    
    
    def poll(interval):
            """Retrieve raw stats within an interval window."""
            tot_before = psutil.net_io_counters()
            pnic_before = psutil.net_io_counters(pernic=True)
            # sleep some time      
            time.sleep(interval)
            tot_after = psutil.net_io_counters()
            pnic_after = psutil.net_io_counters(pernic=True)
            # get cpu state      
            cpu_state = getCPUstate(interval)
            # get memory      
            memory_state = getMemorystate()
            return (tot_before, tot_after, pnic_before, pnic_after,cpu_state,memory_state)
    
    def refresh_window(tot_before, tot_after, pnic_before, pnic_after,cpu_state,memory_state):
            if os.name == 'nt':
                os.system("cls")
            else:
                os.system("clear")
            """Print stats on screen."""
    
    
            #print current time #cpu state #memory      
            print(time.asctime()+" | "+cpu_state+" | "+memory_state)
    
            # totals      
            print(" NetStates:")
            )
            print("total packets:                 sent: %-10s     received: %s" % (tot_after.packets_sent,
            )
            # per-network interface details: let's sort network interfaces so      
            # that the ones which generated more traffic are shown first      
            print("")
            nic_names = pnic_after.keys()
            #nic_names.sort(key=lambda x: sum(pnic_after[x]), reverse=True)      
            for name in nic_names:
                    stats_before = pnic_before[name]
                    stats_after = pnic_after[name]
                    templ = "%-15s %15s %15s"
                    print(templ % (name, "TOTAL", "PER-SEC"))
                    print(templ % (
                            "bytes-sent",
                            bytes2human(stats_after.bytes_sent),
                            bytes2human(stats_after.bytes_sent - stats_before.bytes_sent) + '/s',
                    ))
                    print(templ % (
                            "bytes-recv",
                            bytes2human(stats_after.bytes_recv),
                            bytes2human(stats_after.bytes_recv - stats_before.bytes_recv) + '/s',
                    ))
                    print(templ % (
                            "pkts-sent",
                            stats_after.packets_sent,
                            stats_after.packets_sent - stats_before.packets_sent,
                    ))
                    print(templ % (
                            "pkts-recv",
                            stats_after.packets_recv,
                            stats_after.packets_recv - stats_before.packets_recv,
                    ))
                    print("")
    
    try:
            interval = 0
            while 1:
                    args = poll(interval)
                    refresh_window(*args)
                    interval = 1
    except (KeyboardInterrupt, SystemExit):
            pass
  • 相关阅读:
    el-select remote 远程搜索 多个共享一个options,options改变时输入框值不显示名称的问题
    vue 中数据共享的方式
    关于AI本质的思考
    人工智能——一场精妙的商业炒作
    相关下载链接
    只用两个问题通关《极限挑战皇家宝藏》最后一关
    常见图片格式详解
    改写《python基础教程》中的一个例子
    介绍四款windows下的神器
    实现windows批处理下的计时功能
  • 原文地址:https://www.cnblogs.com/liuyansheng/p/6281829.html
Copyright © 2020-2023  润新知