#!/bin/bash # Name: sping # Zweck: Alle Rechner von ein Class C netzwerk anpingen # Syntax: sping Teil_von_IP_Adresse (erste 3 teilen) # z.B. sping 192.168.100 # ------------------------------------------------------------------------------------------- # 'Fehler anzeigen' Funktion #error () { # echo "$fehlertext" # echo "Syntax: z.B. $0 192.168.100" # exit 1 #} #------------- $1 ist die Fehler Text #------------- Syntax: error Fehlertext #------------- z.B. error "FEHLER: Falsche Parameter typ" error () { echo $1 echo "Syntax: z.B. $0 192.168.100" exit 1 } #-------------- Start von Script ---------------- #------- Parameter Anzahl Überprüfen if [ $# -ne 1 ] ; then error "FEHLER: Falsche Anzahl von Parameter" fi #------- Teil von IP NUmmer Überprüfen if [ "$(hostname -i | cut -d. -f1,2,3)" != "$(echo $1|cut -d. -f1,2,3)" ]; then error "FEHLER: Die IP Teil ist nicht von unsere Netzwerk" fi #----------- Letzte Punkt (wenn vorhanden) rausnehmen IP1=$(echo $1 | sed "s/\.$//") #echo $IP1 # --------- Lange von IP Teil Überprüfen: Zu Kurz? if ! (echo $IP1 | grep "[0-9]\+\.[0-9]\+\.[0-9]" &>/dev/null); then error "FEHLER: Teil von IP ist zu kurz." fi # --------- Lange von IP Teil Überprüfen: Zu Lange? if (echo $IP1 | egrep "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" &>/dev/null); then error "FEHLER: Teil von IP ist zu Lange." fi #---------- Schleife 254 Pings gleichzeitig zu senden >/tmp/netzping for ((i=1; $i<=254;i++)); do /bin/ping -w3 -c1 $IP1.$i >> /tmp/netzping 2>/dev/null & done grep "^64 bytes from" /tmp/netzping | cut -d" " -f4 | cut -d: -f1| sort -t. -k4n -u