Varredura rápida de ping em python

Então, estou tentando obter resultados semelhantes usando python, como faço com um script bash.

Código para o script 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

O que eu gostaria de fazer é obter os mesmos resultados com velocidade semelhante. O problema que tive com todas as versões do script python é que leva muito tempo para ser concluído em comparação com os poucos segundos que o script em lote leva.

O arquivo em lote leva cerca de 2 segundos para varrer uma rede / 24, enquanto o melhor que posso obter com o script python é de 5 a 8 minutos.

Versão mais recente do script python:

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

Eu tentei várias maneiras diferentes em python, mas não consigo chegar nem perto da velocidade do script bash.

Alguma sugestão?

questionAnswers(1)

yourAnswerToTheQuestion