1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python获取eth0_python 获取网卡实时流量

python获取eth0_python 获取网卡实时流量

时间:2023-04-14 08:54:56

相关推荐

python获取eth0_python 获取网卡实时流量

python 获取网卡实时流量

发布时间:-08-05 21:04:01编辑:admin阅读(10421)

使用python监控系统时,获取网卡流量是比较难搞的,网上找了一个比较好的脚本,分享一下!

psutil模块是一个跨平台的获取进程和系统应用情况(CPU,内存,磁盘,网络,传感器)的库。该模块用于系统监控、限制进程资源和运行进程的管理等方面

安装模块psutilpip install psutil

亲测Linux和Windows使用正常

net_traffic.py#!/usr/bin/env python

# -*- coding: utf-8 -*-

try:

import psutil

except ImportError:

print('Error: psutil module not found!')

exit()

def get_key():

key_info = _io_counters(pernic=True).keys()

recv = {}

sent = {}

for key in key_info:

recv.setdefault(key, _io_counters(pernic=True).get(key).bytes_recv)

sent.setdefault(key, _io_counters(pernic=True).get(key).bytes_sent)

return key_info, recv, sent

def get_rate(func):

import time

key_info, old_recv, old_sent = func()

time.sleep(1)

key_info, now_recv, now_sent = func()

net_in = {}

net_out = {}

for key in key_info:

# float('%.2f' % a)

net_in.setdefault(key, float('%.2f' %((now_recv.get(key) - old_recv.get(key)) / 1024)))

net_out.setdefault(key, float('%.2f' %((now_sent.get(key) - old_sent.get(key)) / 1024)))

return key_info, net_in, net_out

while 1:

try:

key_info, net_in, net_out = get_rate(get_key)

for key in key_info:

# lo 是linux的本机回环网卡,以太网是我win10系统的网卡名

if key != 'lo' or key == '以太网':

print('%s\nInput:\t %-5sKB/s\nOutput:\t %-5sKB/s\n' % (key, net_in.get(key), net_out.get(key)))

except KeyboardInterrupt:

exit()

注意:以太网是我win10网卡名,可自行更改

数字显示,改成保留小数点2位,使用float

运行脚本,使用迅雷下载一步高清电影,效果如下:

将代码拷贝到Linux服务器,运行一下。

下载一个软件包,效果如下:

关键字:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。