Maison >développement back-end >Tutoriel Python >Comment afficher les informations sur le trafic réseau du système en Python

Comment afficher les informations sur le trafic réseau du système en Python

高洛峰
高洛峰original
2017-02-23 11:01:421559parcourir

Avant-propos

Les informations trafic sont consultables directement dans /proc/net/dev Le programme mis en œuvre par l'auteur utilise la commande :

<.>
python net.py interface

est le nom de la carte réseau, quelle carte réseau utiliser et quelles cartes réseau l'ordinateur possède, vous pouvez utiliser interface

sudo ifconfig

Vérifiez.

Le programme implémenté en Python est le suivant :

# coding:utf-8
import sys, time, os


&#39;&#39;&#39;
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

&#39;&#39;&#39;

_unit_=[&#39;B&#39;,&#39;KB&#39;,&#39;MB&#39;,&#39;GB&#39;,&#39;TB&#39;]

def get_net_data(interface):
  for line in open(&#39;/proc/net/dev&#39;, &#39;r&#39;):
    if line.split(&#39;:&#39;)[0].find(interface)>=0:
      return map(int, line.split(&#39;:&#39;)[1].split())

def convert_bytes_to_string(b):
  cnt = 0
  while b >= 1024.0:
    b = float(b) / 1024.0
    cnt += 1
  return &#39;%.2f%s&#39;%(b,_unit_[cnt])

if __name__ == &#39;__main__&#39;:
  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(&#39;clear&#39;)
    print &#39;Interface:%s  -> Receive Data: %s  Transmit Data: %s&#39;%(interface, convert_bytes_to_string(receive_data_bytes), convert_bytes_to_string(transmit_data_bytes))
    time.sleep(1)

Le programme l'entrée se fait à partir de , obtenez d'abord

via les paramètres, puis appelez la fonction if name=='main' pour obtenir des informations sur le trafic, suivi d'un certain traitement des données. interfaceget_net_data()

RésuméCe qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile aux études ou au travail de chacun. donc, si vous avez des questions, vous pouvez laisser un message pour communiquer.

Pour plus d'informations sur la façon d'afficher le trafic réseau du système en Python, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn