PING
-
Hallo!
Habe ein Ping-Tolll gechrieben, wo man einen Server anpingen kann. Möchte nur statt dass die Auswertung kommt da steht dass zb. Server ist online.
#include <iostream> #include <cstdlib> #include <string> using namespace std; int main() { cout << "IP eingeben:"; string ip; cin >> ip; const string command = "PING " + ip + " -n 5"; system(command.c_str()); return 0; }
Habe gehört dass es irgendwie mit errorlevel gehen kann. Weiss aber nicht
genau wie
MfG
Michael
-
am sichersten ist es, wenn du den ping-output parst. aber aufwandstechnisch kannst dann schon wieder ping selber schreiben, das is nämlich nit viel
-
Und wie schreibt man so einen Ping, habe das nämlich noch nie gemacht
MfG
Much
-
hi,
ich würd dir raten einfach die ausgabe des ping zu betrachten. entweder antwort, oder nicht.
du brauchst aber keinen ping selber schreiben, wenn du dieses tool so unbedingt möchtest...
hatte jetzt net viel zeit, drum evtl. ein bisschen feilen, aber es sollte gehen:
#include <string> #include <iostream> using namespace std; int main() { char* ptr; string command; string ip; ptr = new char[512]; cout << "IP eingeben:"; cin >> ip; command = "PING " + ip + " -n 1"; FILE *fp= _popen(command.c_str(),"r"); sprintf(ptr,command.c_str()); while(fgets(ptr,512,fp)!=NULL) { command = ptr; if(command.find("Antwort",0)==0){ cout << endl << ip << " ist online" << endl; _pclose(fp); delete(ptr); return 0; } } cout << endl << ip << " ist offline" << endl; _pclose(fp); delete(ptr); return 1; }
ein eigener ping wär natürlich schöner, aber auch aufwendiger...
greetings,
LukeX
www.lukex.net
-
@Much2k
Das errorlevel kannst du in einer Batch-Datei auswerten. Ungefähr so:rem Batch Datei für Ping rem %1 = IP-Adresse (Übergabeparameter) call ping %1 -n 1 rem immer mit dem höchsten errorlevel beginnen, sonst klappts nicht if errorlevel=2 goto ERG2 if errorlevel=1 goto ERG1 rem Code wenn kein errorlevel zutrifft ... ERG2: rem Code wenn errorlevel=2 ... ERG1: rem Code wenn errorlevel=1 ...