This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
lijia-tsg-oam/py_test/traffic.py
lijia 3daccfb2e3 marsio,pcap流量信息分别获取;
使用配置文件tsg_interface.json配置每个网卡的属性: 驱动类型,flow_type等
2019-08-04 22:45:58 +08:00

63 lines
1.5 KiB
Python

# coding: utf-8
try:
import psutil
except ImportError:
print('Error: psutil module not found!')
exit()
def get_key():
key_info = psutil.net_io_counters(pernic=True).keys()
#print(key_info)
recv = {}
sent = {}
print("--------------------------------------------")
print(psutil.net_io_counters(pernic=True).get("eth0"))
print("--------------------------------------------")
for key in key_info:
print(key)
print(psutil.net_io_counters())
recv.setdefault(key, psutil.net_io_counters(pernic=True).get(key).bytes_recv)
sent.setdefault(key, psutil.net_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:
net_in.setdefault(key, (now_recv.get(key) - old_recv.get(key)) / 1024)
net_out.setdefault(key, (now_sent.get(key) - old_sent.get(key)) / 1024)
return key_info, net_in, net_out
def traffic_show():
try:
key_info, net_in, net_out = get_rate(get_key)
for key in key_info:
print('%s\nInput:\t %-5sKB/s\nOutput:\t %-5sKB/s\n' % (key, net_in.get(key), net_out.get(key)))
except KeyboardInterrupt:
exit()
if __name__ == '__main__':
#traffic_show()
key_info = psutil.net_io_counters().keys()
print("#### %s" %(key_info))