Szybkie przeciąganie w Pythonie

Tak, próbuję uzyskać podobne wyniki za pomocą Pythona, jak robię to ze skryptem bash.

Kod skryptu bash:

    #!/bin/bash

    for ip in $(seq 1 254); do
        ping -c 1 10.10.10.$ip | grep "bytes from" | cut -d " " -f 4 | cut -d ":" -f 1 &
    done

Chciałbym uzyskać takie same wyniki z podobną prędkością. Problem z każdą wersją skryptu Pythona polega na tym, że ukończenie go zajmuje bardzo dużo czasu w porównaniu z kilkoma sekundami, które zajmuje skrypt wsadowy.

Plik wsadowy zajmuje około 2 sekund, aby zamienić sieć / 24, podczas gdy najlepsze, co mogę uzyskać za pomocą skryptu Pythona, to około 5-8 minut.

Najnowsza wersja skryptu Pythona:

import subprocess

cmdping = "ping -c1 10.10.10."

for x in range (2,255):
    p = subprocess.Popen(cmdping+str(x), shell=True, stderr=subprocess.PIPE)

    while True:
        out = p.stderr.read(1)
        if out == '' and p.poll() != None:
            break
        if out != '':
            sys.stdout.write(out)
            sys.stdout.flush()

W Pythonie wypróbowałem kilka różnych sposobów, ale nie mogę zbliżyć się do prędkości skryptu basha.

Jakieś sugestie?

questionAnswers(1)

yourAnswerToTheQuestion