Das Programm benutzt das ICMP-Protokoll für seine Aktionen. Es sendet ein Paket vom Typ ECHO-REQUEST an den Zielrechner. Ist dieser erreichbar und nicht gerade von einer Firewall geschützt, so antwortet dieser mit einem Paket vom Typ ECHO-REPLY . Ist der Zielrechner nicht erreichbar, so meldet sich der letzte erreichbare Router auf dem vermeintlich richtigen Weg zum Zielrechner mit einem Paket vom Typ DESTINATION-UNREACHABLE .
ping [OPTIONEN] HOST
Normalerweise sendet ping, wenn es einmal gestart ist, alle Sekunde ein Paket an den Zielrechner. Den Vorgang können Sie ganz einfach mit der Tastenkombination <Strg>+<c> unterbrechen. Wenn Sie die Anzahl der Pings begrenzen wollen, können Sie Option -c verwenden.
defiant:~ # ping -c 3 www.fibel.org PING www.fibel.org (193.254.185.32) 56(84) bytes of data. 64 bytes from vincent.netbeat.de (193.254.185.32): icmp_seq=1 ttl=52 time=110 ms 64 bytes from vincent.netbeat.de (193.254.185.32): icmp_seq=2 ttl=52 time=72.7 ms 64 bytes from vincent.netbeat.de (193.254.185.32): icmp_seq=3 ttl=52 time=69.8 ms --- www.fibel.org ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 69.826/84.206/110.062/18.323 ms
Als Ausgabe zeigt der Befehl ping die Größe des Pakets an (56 Bytes). Durch den 8 Byte großen ICMP-Kopf wird das Antwortpaket auf 64 Bytes erhöht. Für jeden einzelnen Ping wird die Adresse des Zielhosts, die laufende Pingnummer (icmp_seq), die Time To Live (TTL) und die Zeit für eine Rundreise angeben. Zum Abschluß der Ausgabe macht der Befehl noch eine Statistikzusammenfassung. Sie können die Anzahl der gesendeten und empfangenen Pakete sehen. Dazu wird auch noch die Verlustrate in Prozent angegeben und die Zeit, die für das Senden und Empfangen der Pakete ingesamt benötigt wurde. Die letzte Zeile gibt eine Statistik der Rundreisezeiten (rount trip) aus. Das Minimum, arithmetische Mittel, das Maximum und die Standardabweichung werden hier in Millisekunden angeben.
Natürlich kennt der Befehl ping eine Reihe von Optionen. Eine Auswahl von Optionen finden Sie in der folgenden Liste.
Optionen | |
-b | Erlaubt Ping an eine Broadcastadresse |
-c ANZAHL | Legt die Anzahl der gesendeten Pakete fest |
-f | Flood ping, soviele Pings wie möglich pro Zeiteinheit |
-i INTERVALL | Wartezeit zwischen den Paketen in Sekunden |
-I INTERFACE | Ping geht über das angegeben Interface |
-l ANZAHL | Sende eine Anzahl von Paketen ohne auf eine Antwort zu warten, nur root kann mehr als 3 angeben. |
-n | Es erfolgt keine Namensauflösung für IP-Adressen |
-q | Nur die Zusammenfassungszeilen werden ausgegeben |
-s GROESSE | Die Größe des zu sendenden Pakets in Bytes |
-t TTL | Setzt die Time To Live fest |
-v | Ausführliche Ausgabe |
-w TIMEOUT | Dauer der Prüfung in Sekunden |
-W TIMEOUT | Maximale Wartezeit auf ein Paket |
Um herauszufinden welche Rechner in einem Netz aktiv sind, können Sie einen Ping auf die Broadcast-Adresse senden. Die Option -b erlaubt Ihnen diesen sonst verbotenen Vorgang.
dozent@linux37:~> ping -c 2 -b 217.89.70.63 WARNING: pinging broadcast address PING 217.89.70.63 (217.89.70.63) 56(84) bytes of data. 64 bytes from 217.89.70.37: icmp_seq=1 ttl=64 time=0.136 ms 64 bytes from 217.89.70.62: icmp_seq=1 ttl=128 time=0.244 ms (DUP!) 64 bytes from 217.89.70.60: icmp_seq=1 ttl=255 time=0.248 ms (DUP!) 64 bytes from 217.89.70.56: icmp_seq=1 ttl=64 time=0.253 ms (DUP!) 64 bytes from 217.89.70.50: icmp_seq=1 ttl=64 time=0.256 ms (DUP!) 64 bytes from 217.89.70.42: icmp_seq=1 ttl=64 time=0.277 ms (DUP!) 64 bytes from 217.89.70.49: icmp_seq=1 ttl=64 time=0.281 ms (DUP!) 64 bytes from 217.89.70.38: icmp_seq=1 ttl=64 time=0.286 ms (DUP!) 64 bytes from 217.89.70.41: icmp_seq=1 ttl=64 time=0.303 ms (DUP!) 64 bytes from 217.89.70.39: icmp_seq=1 ttl=64 time=0.307 ms (DUP!) 64 bytes from 217.89.70.35: icmp_seq=1 ttl=64 time=0.326 ms (DUP!) 64 bytes from 217.89.70.46: icmp_seq=1 ttl=64 time=0.331 ms (DUP!) 64 bytes from 217.89.70.47: icmp_seq=1 ttl=64 time=0.335 ms (DUP!) 64 bytes from 217.89.70.40: icmp_seq=1 ttl=64 time=0.352 ms (DUP!) 64 bytes from 217.89.70.61: icmp_seq=1 ttl=255 time=1.89 ms (DUP!) 64 bytes from 217.89.70.37: icmp_seq=2 ttl=64 time=0.131 ms --- 217.89.70.63 ping statistics --- 2 packets transmitted, 2 received, +14 duplicates, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 0.131/0.372/1.890/0.396 ms
Einen ganze Flut von Pings können Sie mit der Option -f auf ein Ziel loslassen. Diese Funktion, die so viele Pings wie möglich absendet, steht nur dem Benutzer root zu Verfügung. Im Gegensatz zum normalen Ping werden die einzelnen Pakete nicht als Zeile aufgeführt, sondern als einzelner Punkt. Für jedes empfangene Paket wird ein Punkt aus der Liste entfernt. Je länger die Reihe der Punkte ist, desto schlechter ist die Laufzeit der Pakete.
dozent@linux37:~> ping -f www.fibel.org PING www.fibel.org (193.254.185.32) 56(84) bytes of data. ping: cannot flood; minimal interval, allowed for user, is 200ms dozent@linux37:~> su Password: linux37:/home/dozent # ping -f www.fibel.org PING www.fibel.org (193.254.185.32) 56(84) bytes of data. --- www.fibel.org ping statistics --- 76 packets transmitted, 76 received, 0% packet loss, time 4914ms rtt min/avg/max/mdev = 69.847/130.882/307.052/86.131 ms, pipe 21, ipg/ewma 65.528/249.178 ms
Weitere Optionen und Funktionen können Sie der Manualpage ping(8) entnehmen.