[LINUX] Exécutez iperf avec python

introduction

Je voulais exécuter iperf avec python au lieu d'un script shell, mais je n'avais pas de document japonais, je vais donc laisser un moyen simple de le faire.

environnement

Ubuntu 14.04 python 3.5.1

Préparation

Tout d'abord, installez le wrapper python à l'aide de pip. pip install iperf3 Il est également possible d'installer directement depuis le référentiel github sans utiliser pip.

git clone https://github.com/thiezn/iperf3-python.git
cd iperf3-python
python3 setup.py install

Comment utiliser

Code côté serveur

iperf_server.py


#!/usr/bin/env python3

import iperf3

server = iperf3.Server()
print('Running server: {0}:{1}'.format(server.bind_address, server.port))

while True:
    result = server.run()

    if result.error:
        print(result.error)
    else:
        print('')
        print('Test results from {0}:{1}'.format(result.remote_host,
                                                 result.remote_port))
        print('  started at         {0}'.format(result.time))
        print('  bytes received     {0}'.format(result.received_bytes))

        print('Average transmitted received in all sorts of networky formats:')
        print('  bits per second      (bps)   {0}'.format(result.received_bps))
        print('  Kilobits per second  (kbps)  {0}'.format(result.received_kbps))
        print('  Megabits per second  (Mbps)  {0}'.format(result.received_Mbps))
        print('  KiloBytes per second (kB/s)  {0}'.format(result.received_kB_s))
        print('  MegaBytes per second (MB/s)  {0}'.format(result.received_MB_s))
        print('')

Puis le code côté client

iperf_client.py


#!/usr/bin/env python3

import iperf3

client = iperf3.Client()
client.duration = 10 # Measurement time [sec]
client.server_hostname = '192.168.1.1' # Server's IP address

print('Connecting to {0}:{1}'.format(client.server_hostname, client.port))
result = client.run()

if result.error:
    print(result.error)
else:
    print('')
    print('Test completed:')
    print('  started at         {0}'.format(result.time))
    print('  bytes transmitted  {0}'.format(result.sent_bytes))
    print('  retransmits        {0}'.format(result.retransmits))
    print('  avg cpu load       {0}%\n'.format(result.local_cpu_total))

    print('Average transmitted data in all sorts of networky formats:')
    print('  bits per second      (bps)   {0}'.format(result.sent_bps))
    print('  Kilobits per second  (kbps)  {0}'.format(result.sent_kbps))
    print('  Megabits per second  (Mbps)  {0}'.format(result.sent_Mbps))
    print('  KiloBytes per second (kB/s)  {0}'.format(result.sent_kB_s))
    print('  MegaBytes per second (MB/s)  {0}'.format(result.sent_MB_s))

en conclusion

Avec cela, le débit du réseau peut être mesuré pour le moment. Le serveur (192.168.1.1) et le client effectuent des mesures en utilisant iperf3 pendant 10 secondes. Bien que non modifié dans ce code, il est possible de spécifier le numéro de port et UDP / TCP ainsi que iperf exécuté sur la ligne de commande.

Les références

https://pypi.python.org/pypi/iperf3 https://github.com/thiezn/iperf3-python

Recommended Posts

Exécutez iperf avec python
Exécutez Python avec VBA
Exécutez prepDE.py avec python3
Exécutez Blender avec python
Exécutez Python avec CloudFlash (arm926ej-s)
Exécuter Label avec tkinter [Python]
Exécutez mruby avec Python ou Blender
Exécutez XGBoost avec Cloud Dataflow (Python)
Exécutez Aprili depuis Python sur Orange
Exécutez python3 Django1.9 avec mod_wsgi (déployer)
Jusqu'à ce que Python fonctionne sur Apache
FizzBuzz en Python3
Grattage avec Python
Statistiques avec python
Grattage avec Python
Python avec Go
Intégrer avec Python
AES256 avec python
Testé avec Python
python commence par ()
avec syntaxe (Python)
Bingo avec python
Zundokokiyoshi avec python
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
Exécutez le servo avec Python sur ESP32 (Windows)
Exécutez une application Web Python avec Docker
Communication série avec Python
Zip, décompressez avec python
Jugement des nombres premiers avec Python
Python avec eclipse + PyDev.
Communication de socket avec Python
Analyse de données avec python 2
Grattage en Python (préparation)
Essayez de gratter avec Python.
Recherche séquentielle avec Python
"Orienté objet" appris avec python
Résolvez AtCoder 167 avec python
Communication série avec python
[Python] Utiliser JSON avec Python
Apprenez Python avec ChemTHEATER
Collecter des tweets avec Python
3. 3. Programmation IA avec Python
Méthode Kernel avec Python
Non bloquant avec Python + uWSGI
Grattage avec Python + PhantomJS
Publier des tweets avec python
Conduisez WebDriver avec python
Utiliser mecab avec Python 3
[Python] Redirection avec CGIHTTPServer
Analyse vocale par python
Pensez à yaml avec python
Exécutez Python à partir d'Excel
Python> Exécuter avec des arguments d'exécution> Utiliser import argparse
Utiliser Kinesis avec Python
Premiers pas avec Python
Getter Zundko avec python
Gérez Excel avec python