Ускорить функцию в Bash, чтобы он закончил сканирование в 10 раз быстрее

Я использую приведенную ниже функцию для сканирования, если в моей сети порт 80 открыт или нет,

В случае, если порт закрыт, он ждет 1 сек, как я могу его запустить?

так одна и та же функция может запускаться 10 раз за одно и то же время или что-то вроде?

while read ip
do
    nc -zw1 $ip 80 && echo "$ip" >> opened || echo "$ip" >> closed;
done < list

или, может быть, альтернатива, которая сделает то же самое быстрее,

Спасибо.

2 ответа

Решение
while read ip
do
    (nc -zw1 $ip 80 && echo "$ip" >> opened || echo "$ip" >> closed) & # The & will run each test in the background, allowing all tests to be done more or less concurrently.
done < list

Используйте сетевой сканер как nmap:

sudo nmap -iL list -Pn -p 80

Nmap будет сканировать несколько хостов параллельно и может выполнять сканирование SYN, а не обычные попытки подключения, что ускоряет его на два порядка.

Другие вопросы по тегам