Criando um processo para cada stdout redirecionado

1
Portanto, eu tenho um scanner de porta (masscan), e eu quero redirecionar sua saída para uma determinada linha de comando, que vai verificar se toda combinação IP: Port resultante serve um determinado serviço web.

Então, pode ser assim:

masscan 0.0.0.0/0 -p8080 --max-rate 300000 | ./scanner.py

Mas isso seria lento para grandes intervalos de IP, pois scanner.py vai processar um por um.

Como posso fazer isso em paralelo? isto é, redirecionando cada IP por conta própria e criando processos que funcionarão em paralelo processando o stdin que foi redirecionado para eles, tornando a verificação mais rápida.

    
por Abona Feltaos 09.02.2017 / 01:15

1 resposta

1

Acho que você pode fazer algo com xargs . Por exemplo, o seguinte:

masscan 0.0.0.0/0 -p8080 --max-rate 300000 | \
    xargs -L1 -I+ -P200 sh -c "echo '+' | ./scanner.py"

Isso executaria até 200% em paralelo./scanner.py, cada um manipulando uma única linha de resultado de masscan .

    
por 09.02.2017 / 04:01