Komplettes Subnetz anpingen

Es gibt Situationen wo man wissen möchte welche Rechner in einem Subnetz zu finden sind. Die erste Wahl fällt hierbei auf das Kommando ping1), wobei es mühselig sein kann jede Adresse einzeln anzupingen. Folgendes Shellscript automatisiert diesen Vorgang:

pingsubnet.sh

#!/bin/bash
 
for ip in $(seq 1 254); do ping -c 1 -w 1 192.168.0.$ip>/dev/null; [ $? -eq 0 ] && echo "192.168.0.$ip UP" || : ; done

Dieses Kommando belegt die Variable $ip mit 1 und erhöht bei jedem Schleifendurchlauf den Wert um 1 bis 254 erreicht ist. jeder Schleifendurchlauf führt nur einen Ping »-c 1« auf jede Adresse des Netzes 192.168.0.$ip und wartet nur eine Sekunde auf Antwort »-w 1«. Auftretende Fehlermeldungen werden verworfen »>/dev/null« und erfolgreiche Antworten, wo der Exitstatus 0 ist »$? -eq 0« werden mit dem echo-Kommando in die Standardausgabe geschrieben.

Fährerweise muss man dazusagen, dass dadurch alle Geräte übersehen werden, welche nicht auf einen Ping antworten. Das Ergebnis ist demnach nicht verlässlich aber es gibt uU mal einen oder mehrere Ansatzpunkte.

pronto 2015/03/03 15:54

tux/netping.txt (1994 views) · Zuletzt geändert: 2015/03/04 09:15 von wikisysop
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0