はじめに
トラフィック情報は、/proc/net/dev
で直接表示できます。作者が実装したプログラムは、/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()
というコマンドを使用します。 このうち、interface
はネットワーク カードの名前であり、どのネットワーク カードが使用されているか、およびコンピューターにどのネットワーク カードが搭載されているかを示します。 を確認してください。
Pythonで実装されたプログラムは以下の通りです:
🎜🎜🎜rrreee🎜🎜🎜 プログラムエントリは最初にif name=='main'
から始まります。 interface
パラメータを通じて取得した後、get_net_data()
関数を呼び出して交通情報を取得し、その後にデータ処理を行います。 🎜🎜🎜🎜概要🎜🎜🎜🎜 以上がこの記事の全内容です。ご質問がございましたら、メッセージを残していただければ幸いです。 🎜🎜 Python でシステム ネットワーク トラフィックを表示する方法の詳細については、PHP 中国語 Web サイトに注目してください。 🎜