IP Adresse auf Verfügbarkeit prüfen
-
Heyho Community
Ich möchte gerne eine IP-Adresse pingen und ihre Verfügbarkeit prüfen.
Leider finde ich nichts oder ich bin einfach zu doof, um was zu finden.
Ich möchte nur wissen wie die Abfrage lautet sollte.Sollte etwa so lauten:
if(system(ping) == TRUE){ }
Nur leider funktioniert so nicht.
Vielen Dank
Sylnois
-
RFTM
man: system(3). An keiner Stelle steht, dass
system
ein boolean zurückliefert, sondern ein int mit dem Exit-Code. Selbst wennsystem
TRUE oder FALSE zurückgeben könnte, woher sollsystem
über die Semantik von 'ping' wissen, wann etwas als TRUE oder FALSE zu bewerten ist????Du kannst aber folgendes machen:
int ret = system("ping -c1 www.web.dee"); if(ret < 0) perror("system"); else if(WEXITSTATUS(ret) != 0) { fprintf(stderr, "www.web.dee nicht erreichbar, ICMP nicht möglich\n"); .... }
-
Danke vielmals.
Hat übrigens auch ohne WEXITSTATUS funktioniert.LG
Sylnois
-
ja, aber das ist undefiniertes Verhalten. Du sollst WEXITSTATUS verwenden, weil der return-Value noch mehr Information hat.
Ich weiß aber nicht, ob WEXITSTATUS dem ANSI C Standard angehört, wenn du aber für POSIX Systeme Code schreibst, dann solltest du das auf jeden Fall verwenden.
//edit:
laut http://msdn.microsoft.com/en-us/library/277bwbdz(VS.71).aspx braucht man unter Windows WEXITSTATUS nicht.