Ich brauche ein Skript, das eine Gruppe von IPs anpingt und als Ergebnis die Online-IP zurückgibt. Es wird beispielsweise Folgendes ausgeben: 10.10.10.10 ist online
10.10.10.11 ist online
10.10.10.15 ist online
Ohne Verwendung von Paketen oder Dienstprogrammen von Drittanbietern!
Irgendeine Hilfe ?
Antwort1
Kein Skript erforderlich.nmapkann das für Sie tun.
Um beispielsweise ein 10.10.10.0/24 Netzwerk zu scannen, führen Sie
nmap -sn 10.10.10.0/24
Dadurch wird gemeldet, dass Hosts aktiv sind, indem sie auf eine ICMP-Echoanforderung (Ping) antworten. Eine Beispielausgabe:
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
Antwort2
Das folgende Skript führt eine Schleife in den IP-Adressen eines Subnetzes aus und gibt als Ergebnis nur die Online-IP zurück:
#!/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
Beachten Sie, dass Sie 10.1.1 in Ihr Subnetz ändern müssen. Eine 1..255 weist das Skript an, bei 10.1.1.1 zu starten und eine Schleife mit 10.1.1.255 auszuführen.
Ausführen:
./ping_scan.sh