Ping enthält immer TTL= ?

Hallo Allerseits,

ich möchte ein „allgemeingültiges“ Skript erstellen. Darin soll in Abhängigkeit von der Ping-Antwort (erfolgreich oder nicht) in den entsprechenden Zweig verzweigt werden. Leider gibt es gefühlt unendlich viele Versionen (auch abhängig, ob deutsch, englisch etc.). Mein Gedanke ist nun mittels find auf das Vorhandensein von TTL= zu prüfen. Deswegen hier die Frage. Ist jemals jemanden bei irgendeiner Version untergekommen, dass bei erfolgreichem Ping dieses TTL= nicht vorhanden war oder in anderer Form (z. B. TTL =).

Gerne nutze ich auch andere Lösungen. Aufgabenstellung: in einem großen Netzwerk gibt es u. U. mehrere hundert speziell konfigurierte Systeme. Davon möchte ich auf mehreren Zielen deren Konfigurationen ein mal im Monat sichern. Sollte ein System-PC ausfallen, soll sich der Ersatz-PC per Skript entsprechend selbst wiedeherstellen. Für das regelmäßige Sichern benötige ich die Ping-Info.

Danke im Voraus.

MfG

AL

mit dem %ErrorLevel%

Hallo @schraat,

ich kann Deine Antwort nicht so richtig einordnen aber evtl. meinst Du das hier:

…Ping liefert nicht in allen Windows-Versionen zuverlässig einen richtigen Errorlevel zurück. Besser ist es…

Dann scheint das eben nicht vollständig zuverlässig zu sein. Solltest Du aber was anderes meinen, wäre es nett, wenn Du’s kurz näher erläuterst.

MfG

AL

Hallo,

der %ErrorLevel% ist auf jeden Fall die richtige Richtung:

Das muss auch nur auf dem System funktionieren, wo dein Script nachher läuft. Ob die Geräte, die du anpingst ein kaputtes Ping installiert haben ist dabei ja egal.

Gruß,
Steve

Mit dem Errorlevel geht es prinzipiell.

Der Link beschreibt Szenarien, wo fälschlicherweise dennoch 0 zurückgegeben wird, weil jemand anders antwortet. Um dies zu vermeiden benutzt er bestimmte Aufrufparameter mit ping.

Hallo Allerseits,

dann nutze ich mal den 4-Zeiler von Hannes Schurig.

Vielen Dank an alle Tippgeber. Damit kann ich das Problem lösen.

MfG

AL

Hallo Allerseits,

hier mein Skriptauszug:


set ipnetz=192.168.0
set serverip=100

ECHO errorlevel vor PING %errorlevel%
PAUSE

ping %ipnetz%.%serverip% -n 2 -w 1000 -l 2000

ECHO errorlevel nach PING %errorlevel%
PAUSE

IF %errorlevel%==1 (
ECHO.
GOTO NotAccessible
) ELSE (
ECHO.
GOTO Accessible


Und das hier kommt raus. Man sieht, der errorlevel ist 0 obwohl IP nicht erreichbar. Aber manchmal geht es auch. Sprich, es wird …not accessible… ausgegeben. Hat jemand einen Tipp?


d:\Andi\Scripts\3692>Ping_Erreichbarkeit.cmd

Check accessibility of restoring-PC 01

Drücken Sie eine beliebige Taste . . .

errorlevel vor PING 0
Drücken Sie eine beliebige Taste . . .

Ping wird ausgeführt für 192.168.0.100 mit 2000 Bytes Daten:
Zeitüberschreitung der Anforderung.
Antwort von 192.168.0.218: Zielhost nicht erreichbar.

Ping-Statistik für 192.168.0.100:
Pakete: Gesendet = 2, Empfangen = 1, Verloren = 1
(50% Verlust),
errorlevel nach PING 0
Drücken Sie eine beliebige Taste . . .

Restoring-PC 01 accessible

Drücken Sie eine beliebige Taste . . .


Dann habe ich es dreimal hintereinander probiert und beim dritten mal hat es funktioniert. Aber das ist die Unzuverlässigkeit, die nicht auftreten darf:


d:\Andi\Scripts\3692>Ping_Erreichbarkeit.cmd

Check accessibility of restoring-PC 01

Drücken Sie eine beliebige Taste . . .

errorlevel vor PING 0
Drücken Sie eine beliebige Taste . . .

Ping wird ausgeführt für 192.168.0.100 mit 2000 Bytes Daten:
Zeitüberschreitung der Anforderung.
Antwort von 192.168.0.218: Zielhost nicht erreichbar.

Ping-Statistik für 192.168.0.100:
Pakete: Gesendet = 2, Empfangen = 1, Verloren = 1
(50% Verlust),
errorlevel nach PING 0
Drücken Sie eine beliebige Taste . . .

Restoring-PC 01 accessible

Drücken Sie eine beliebige Taste . . .

d:\Andi\Scripts\3692>Ping_Erreichbarkeit.cmd

Check accessibility of restoring-PC 01

Drücken Sie eine beliebige Taste . . .

errorlevel vor PING 0
Drücken Sie eine beliebige Taste . . .

Ping wird ausgeführt für 192.168.0.100 mit 2000 Bytes Daten:
Zeitüberschreitung der Anforderung.
Zeitüberschreitung der Anforderung.

Ping-Statistik für 192.168.0.100:
Pakete: Gesendet = 2, Empfangen = 0, Verloren = 2
(100% Verlust),
errorlevel nach PING 1
Drücken Sie eine beliebige Taste . . .

Restoring-PC 01 not accessible

Drücken Sie eine beliebige Taste . . .

d:\Andi\Scripts\3692>