Ping-Befehl in C++ auswerten

  • Themenstarter Themenstarter dapartiou
  • Beginndatum Beginndatum
D

dapartiou

Guest
Hi,
wie kann ich in C++ den Ping-Befehl auswerten? (Linux)

Also ich möchte in dem Programm testen, ob der Gegenüber vorhanden ist. Ist das der Fall, soll eine Aktion ausgeführt werden!

Beispiel (allerdings klappt es natürlich nicht)

Code:
int main() {
	bool rueck;
  	rueck = system("ping 127.0.0.1");
  	if ( rueck == 1 ) 
		cout << "Ping erfolgreich" << endl;
 	else 
		cout << "Ping fehlgeschlagen" << endl;

  	return 0; }

Gruß, dapartiou
 
Das sagt aber afaik nichts darueber aus ob der Befehls als solches erfolgreich war, dh der Host wirklich erreichbar ist, sondern nur ob das Programm funktioniert hat.

oder?
 
Naja, leider gibt es kein "man ping" für Windows.
Allerdings (ich hab es vor dem Post getestet ;) ), wenn ich testweise die Anwendung debugge (XP SP3, "standard" Pingprogramm, kompiliert mit gcc 4.3) bekomme ich Rückgabe 0, wenn der Ping erfolgreich war. Dagegen eine 1, wenn etwas schiefging (host nicht erreichbar).

Natürlich ist es wiederum zum einen sehr systemspezifisch, zum anderen muss der Gegenüber nicht auf Pings antworten.
Wäre also sinnvoller, testweise eine Verbindung aufzubauen.
 
Original von CDW
Naja, leider gibt es kein "man ping" für Windows. .Allerdings (ich hab es vor dem Post getestet ;) ), wenn ich testweise die Anwendung debugge (XP SP3, "standard" Pingprogramm, kompiliert mit gcc 4.3) bekomme ich Rückgabe 0, wenn der Ping erfolgreich war und 1, wenn etwas schiefging (host nicht erreichbar).
Natürlich ist es wiederum zum einen sehr systemspezifisch, zum anderen muss der Gegenüber nicht auf Pings antworten. Wäre also sinnvoller, testweise eine Verbindung aufzubauen

ping foo.bar
echo %errorlevel%
1
ping google.de
echo %errorlevel%
0

grad mal getestet, gibt also den korrekten return wert.
 
Zurück
Oben