( nw=192.168.0 ; h=1; while [ $h -lt 255 ] ; do ( ping -c2 -i 0.2 -W 0.5 -n $nw.$h & ); h=$[ $h + 1 ] ; done ) | awk '/^64 bytes.*/ { gsub( ":","" ); print $4 }' | sort -u
Данная команда использует утилиту ping для определения доступности устройств в сети класса C с IP-адресами 192.168.0.1 — 192.168.0.254.
Цикл while перебирает все возможные IP-адреса в сети с помощью переменной h и выполняет ping со следующими аргументами: -c2 для отправки двух пакетов, -i 0.2 для интервала между отправкой пакетов в 0,2 секунды и -W 0.5 для установки таймаута в 0,5 секунды на ответ. Результаты ping отправляются в фоновый режим.
Затем вывод ping передается команде awk для поиска строк, начинающихся с «64 bytes.» (которые являются индикаторами успешности пинга) и извлечения IP-адреса, который находится в четвертом столбце вывода команды. awk заменяет двоеточие в конце IP-адреса, а затем выводит только уникальные адреса, отсортированные в алфавитном порядке.
Альтернативы могут включать использование nmap или fping для сканирования сети на наличие устройств. Передаваемые команде аргументы: nw=192.168.0 — это префикс IP-адреса, который будет использоваться для сканирования сети, а h=1 — начальный адрес для сканирования.
