ホームページ  >  記事  >  バックエンド開発  >  Pythonでシステムネットワークトラフィック情報を表示する方法

Pythonでシステムネットワークトラフィック情報を表示する方法

高洛峰
高洛峰オリジナル
2017-02-23 11:01:421478ブラウズ

はじめに

トラフィック情報は、/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()

rrreee

というコマンドを使用します。 このうち、interface はネットワーク カードの名前であり、どのネットワーク カードが使用されているか、およびコンピューターにどのネットワーク カードが搭載されているかを示します。 を確認してください。

Pythonで実装されたプログラムは以下の通りです:

🎜🎜

🎜rrreee🎜🎜🎜 プログラムエントリは最初にif name=='main'から始まります。 interface パラメータを通じて取得した後、get_net_data() 関数を呼び出して交通情報を取得し、その後にデータ処理を行います。 🎜🎜🎜🎜概要🎜🎜🎜🎜 以上がこの記事の全内容です。ご質問がございましたら、メッセージを残していただければ幸いです。 🎜🎜 Python でシステム ネットワーク トラフィックを表示する方法の詳細については、PHP 中国語 Web サイトに注目してください。 🎜

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。