前言
流量信息可以直接在/proc/net/dev中進行查看,筆者實現的程序使用命令:
python net.py interface
其中interface為網卡名稱,使用什么網卡,電腦有哪些網卡,可以使用
sudo ifconfig
進行查看。
Python實現的程序如下:
# coding:utf-8import sys, time, os'''Inter-| Receive | Transmit face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed lo: 28169 364 0 0 0 0 0 0 28169 364 0 0 0 0 0 0 wlan1: 7432984 6018 0 0 0 0 0 0 681381 6115 0 0 0 0 0 0vmnet1: 0 0 0 0 0 0 0 0 0 56 0 0 0 0 0 0vmnet8: 0 0 0 0 0 0 0 0 0 55 0 0 0 0 0 0 eth0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0'''_unit_=['B','KB','MB','GB','TB']def get_net_data(interface): for line in open('/proc/net/dev', 'r'): if line.split(':')[0].find(interface)>=0: return map(int, line.split(':')[1].split())def convert_bytes_to_string(b): cnt = 0 while b >= 1024.0: b = float(b) / 1024.0 cnt += 1 return '%.2f%s'%(b,_unit_[cnt])if __name__ == '__main__': interface = sys.argv[1] while True: net_data = get_net_data(interface) receive_data_bytes = net_data[0] transmit_data_bytes = net_data[8] os.system('clear') print 'Interface:%s -> Receive Data: %s Transmit Data: %s'%(interface, convert_bytes_to_string(receive_data_bytes), convert_bytes_to_string(transmit_data_bytes)) time.sleep(1)程序入口從if name=='main'處開始,首先通過參數獲取interface,然后調用get_net_data()函數獲取流量信息,接下來都是一些數據處理的過程。
總結
以上就是這篇文章的全部內容了,希望對大家的學習或者工作帶來一定的幫助,如果有疑問大家可以留言交流。
新聞熱點
疑難解答
圖片精選