Heim  >  Artikel  >  Backend-Entwicklung  >  So zeigen Sie Systemnetzwerkverkehrsinformationen in Python an

So zeigen Sie Systemnetzwerkverkehrsinformationen in Python an

高洛峰
高洛峰Original
2017-02-23 11:01:421479Durchsuche

Vorwort

Verkehrsinformationen können direkt in /proc/net/dev angezeigt werden. Das vom Autor implementierte Programm verwendet den Befehl:

python net.py interface

wobei interface der Name der Netzwerkkarte ist, welche Netzwerkkarte verwendet werden soll und über welche Netzwerkkarten der Computer verfügt, können Sie

sudo ifconfig

Überprüfen.

Das in Python implementierte Programm lautet wie folgt:

# 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)

Das Programm Eintrag ist von , rufen Sie zuerst

durch die Parameter ab, rufen Sie dann die Funktion if name=='main' auf, um die Verkehrsinformationen abzurufen, gefolgt von einer Datenverarbeitung. interfaceget_net_data()

ZusammenfassungDas Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium oder die Arbeit aller hilfreich sein wird. Wenn Sie Fragen haben, können Sie zur Kommunikation eine Nachricht hinterlassen.

Weitere Informationen zum Anzeigen des Systemnetzwerkverkehrs in Python finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn