Мне нужен скрипт, который пингует группу IP-адресов и возвращает в качестве результата тот, который находится в сети, например, он будет отображаться эхом 10.10.10.10 в сети
10.10.10.11 в сети
10.10.10.15 в сети
Без использования каких-либо пакетов или сторонних утилит!
Любая помощь ?
решение1
Сценарий не нужен.нмапможем сделать это для вас.
Например, чтобы просканировать сеть 10.10.10.0/24, выполните:
nmap -sn 10.10.10.0/24
Это сообщит о хостах, которые работают, на основе ответа на ICMP Echo Request, известный как '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
решение2
Приведенный ниже скрипт будет зацикливаться на IP-адресах подсети и возвращать в качестве результата только данные о состоянии «онлайн»:
#!/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