Ускорить функцию в 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, а не обычные попытки подключения, что ускоряет его на два порядка.