Мне нужен скрипт, который пингует группу ips и в результате возвращает онлайн, он будет отображаться, например, 10.10.10.10 онлайн
10.10.10.11 онлайн
10.10.10.15 онлайн
Без использования какого-либо пакета или сторонней утилиты!
Любая помощь?
Нет необходимости в сценарии. nmap может сделать это за вас.
Например, для сканирования сети 10.10.10.0/24 выполните
nmap -sn 10.10.10.0/24
. Это сообщит о том, что хосты работают, основываясь на ответе на эхо-запрос ICMP, известный как «ping». Пример вывода:
Starting Nmap 5.21 ( http://nmap.org ) at 2014-01-30 00:40 CET
Nmap scan report for 10.10.10.1
Host is up (0.0061s latency).
Nmap scan report for 10.10.10.2
Host is up (0.00071s latency).
Nmap scan report for android (10.10.10.112)
Host is up (0.0087s latency).
Nmap scan report for laptop (10.10.10.134)
Host is up (0.00037s latency).
Nmap scan report for 10.10.10.151
Host is up (0.00094s latency).
Nmap scan report for 10.10.10.203
Host is up (0.00060s latency).
Nmap done: 256 IP addresses (6 hosts up) scanned in 3.41 seconds
Приведенный ниже скрипт зациклится в подсети ips и в результате вернет только онлайн:
#!/bin/bash
is_alive_ping()
{
ping -c 1 $1 > /dev/null
[ $? -eq 0 ] && echo Node with IP: $i is Online.
}
for i in 10.1.1.{1..255}
do
is_alive_ping $i & disown
done
Примечание изменить 10.1.1. для вашей подсети 1..255 сообщает сценарию, что он должен начинаться с 10.1.1.1, и цикл сообщает 10.1.1.255
Выполнить:
./ping_scan.sh