前言
流量信息可以直接在
/proc/net/dev
中進行查看,筆者實現的程序使用命令:
python net.py interface
其中
interface
為網卡名稱,使用什么網卡,電腦有哪些網卡,可以使用
sudo ifconfig
進行查看。
Python實現的程序如下:
# coding:utf-8
import 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 0
vmnet1: 0 0 0 0 0 0 0 0 0 56 0 0 0 0 0 0
vmnet8: 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()
函數獲取流量信息,接下來都是一些數據處理的過程。
總結
以上就是這篇文章的全部內容了,希望對大家的學習或者工作帶來一定的幫助,如果有疑問大家可以留言交流。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

