Ranger81 Geschrieben 10. Januar 2003 Geschrieben 10. Januar 2003 Hallo, gibt es einen Befehl, mitdem man einfach einen Ping ausführen kann auf eine beliebige IP, die in der variable $ip steht ausführen und der dann nen rückgabewert gibt, ob erfolgreich oder fehlerhaft ? <? if (!ping($ip)) { echo("Server down"); } ?> ^sowas in der Art, gibt es sowas und wie geht das ? Brauch dringend Hilfe, THX ! Gruß ranger81 Zitieren
gurkenpapst Geschrieben 10. Januar 2003 Geschrieben 10. Januar 2003 Linux oder Windows webserver? Zitieren
arrayhunter Geschrieben 10. Januar 2003 Geschrieben 10. Januar 2003 <? $ip = "www.lin.ux"; $online=exec("ping $ip -c 1"); // $online=exec("ping $ip -n 1"); // für WINDOZ if (eregi("unbekannter host", $online) || eregi("unknown host", $online)) { print "ping nach $ip funzt nit<br>\n"; } else { print "ping nach $ip funzt<br>\n"; } ?> [/PHP] Zitieren
Ranger81 Geschrieben 11. Januar 2003 Autor Geschrieben 11. Januar 2003 Hallo, keine ahnung ob linux oder windows, aber hab jetz mal das script hier genommen und seht selbst... er gibt einfach nix aus: <? $ip = "www.irgend.einen.*******.de"; $online=exec("ping $ip -c 1"); // $online=exec("ping $ip -n 1"); // für WINDOZ print "Die Variable Online enthaelt: $online<br><br>"; if (eregi("unbekannter host", $online) || eregi("unknown host", $online)) { print "ping nach $ip funzt nit<br>\n"; } else { print "ping nach $ip funzt<br>\n"; } ?> und er sagt immer, dass der ping funzt, obwohl es die adresse nicht gibt... http://mitglied.lycos.de/ranger81/test2.php Zitieren
arrayhunter Geschrieben 11. Januar 2003 Geschrieben 11. Januar 2003 du solltest aber schon wissen, ob du Linux oder Windows benutzt auf deinem Rechner ?? Zitieren
Ranger81 Geschrieben 11. Januar 2003 Autor Geschrieben 11. Januar 2003 nich auf meinem, das kommt im geschäft auf nen rechner und der ist wahrscheinlich linux Zitieren
Tool-Time Geschrieben 11. Januar 2003 Geschrieben 11. Januar 2003 if (eregi("unbekannter host", $online) || eregi("unknown host", $online)) { [/php] Das hier scheint das Problem zu sein . Die eregi Funktion müsste eigentlich nach einem anderen String suchen. Teste es gerade bei mir lokal - welche genau passt. MfG Tool-Time Zitieren
Ranger81 Geschrieben 11. Januar 2003 Autor Geschrieben 11. Januar 2003 das prob ist scheon weiter oben, der speichert gar nix der variable $online ! ich muss jetz leider weg, komme so gegen 17:30 uhr wieder, danke schonmal ! Zitieren
arrayhunter Geschrieben 11. Januar 2003 Geschrieben 11. Januar 2003 exec("/full/path/to/ping -n 10", $output, $error); so sollte es jetzt aber laufen ich hatte die params von exec vergessen Zitieren
Tool-Time Geschrieben 11. Januar 2003 Geschrieben 11. Januar 2003 @blast Wie Ranger81 schon sagte wird leider die in der Variable $online nicht die Ausgaben/ Antwort von exec gespeichert. Es geht unter Windows auch ohne die Pfadangabe : So gibt z.B. $status = passthru("ping $ip"); # win [/php] wird die gesamte Antwort vom Ping zurückgeben (bei exec nur die letzte Zeile PHP-Manual). Dabei wird ersichtlich das der Ping durchgeführt wurde. MfG Tool-Time Zitieren
Ranger81 Geschrieben 11. Januar 2003 Autor Geschrieben 11. Januar 2003 hmm er scheint die funktion nicht zu kennen: Fatal error: Call to undefined function: passthru() in /usr/local/httpd/htdocs/kunden/web249/html/test2.php on line 12 http://ranger81.no-ip.org/test2.php Zitieren
Tool-Time Geschrieben 11. Januar 2003 Geschrieben 11. Januar 2003 Versuch es bitte einmal so : <?php for($i=1; $i<6; $i++) { $ip = "10.24.8.$i"; # Linux # # $online=exec("ping $ip -c 1"); # Windows # # echo"$ip<p>"; # $status = exec("/winnt/system32/ping.exe/ping $ip -n 10", $output, $error); passthru("ping $ip",$status); # sleep(5); if(eregi("100% Verlust", $status)) echo"<p>$ip => bad<p>"; else echo"<p>$ip => ok <p>"; } echo"Status : $status <p>"; ?> [/php] Leider geht die Abfrage noch nicht Aber ich arbeite dran . MfG Tool-Time :StefanE Zitieren
Ranger81 Geschrieben 12. Januar 2003 Autor Geschrieben 12. Januar 2003 jetz kommt das raus: http://ranger81.no-ip.org/test3.php Zitieren
robotto7831a Geschrieben 12. Januar 2003 Geschrieben 12. Januar 2003 Also hier ist die Linux Version. <?php for($i=1; $i<6; $i++) { $ip = "10.24.8.$i"; // Linux $online=exec("ping $ip -c 1 -w 2", $output, $error); if ($error == 0) echo "<p>".$ip." => OK<p>"; else echo "<p>".$ip." => Fehler<p>"; } ?>[/php] Frank Zitieren
Ranger81 Geschrieben 13. Januar 2003 Autor Geschrieben 13. Januar 2003 also auf meinem "localhost" unter linux fäuft das script. naja es wird ja auch hier im geschäft laufen, also klappt es jetz. die webspace anbieter unterbinden wahrscheinlich alle "system"-funktionen denk ich mal. Danke euch allen für die super hilfe ! Zitieren
robotto7831a Geschrieben 13. Januar 2003 Geschrieben 13. Januar 2003 Wenn Du mir jetzt nur noch erklärst, wie man als Webspaceanbieter den Aufruf von Systemfunktionen unterbindet, bei einem Programm dass jeder Benutzer ausführen darf, dann habe ich wieder etwas dazu gelernt. Frank Zitieren
alexf10 Geschrieben 15. Januar 2003 Geschrieben 15. Januar 2003 @palvoelgyi in dem man unter Linux zumindest Zugrifsrechte auf die Ping-Datei ändert Zitieren
robotto7831a Geschrieben 15. Januar 2003 Geschrieben 15. Januar 2003 Gut das wäre eine Möglichkeit. Frank Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.