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.
Ubuntu 14.04 python 3.5.1
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
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))
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.
https://pypi.python.org/pypi/iperf3 https://github.com/thiezn/iperf3-python
Recommended Posts