Um script para executar ping em um grupo de IPs e retornar apenas com o Online?

Um script para executar ping em um grupo de IPs e retornar apenas com o Online?

Eu preciso de um script que faça ping em um grupo de ips e retorne como resultado o online, ele irá ecoar por exemplo 10.10.10.10 está on-line

10.10.10.11 está on-line

10.10.10.15 está on-line

Sem usar nenhum pacote ou utilitário de terceiros!

Qualquer ajuda ?

Responder1

Não há necessidade de um roteiro.nmapInstale o nmappode fazer isso por você.

Por exemplo, para verificar uma rede 10.10.10.0/24, faça

nmap -sn 10.10.10.0/24

Isso reportará que os hosts estão ativos com base na resposta a uma solicitação de eco ICMP, conhecida como 'ping'. Um exemplo de saída:

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

Responder2

O script abaixo fará um loop em uma sub-rede ips e retornará como resultado apenas o online:

#!/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

Observe a alteração 10.1.1. para sua sub-rede, um 1..255 informa ao script para iniciar em 10.1.1.1 e faz um loop em 10.1.1.255

Executar:

./ping_scan.sh

informação relacionada