Veröffentlicht 10. Januar 200322 j 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
10. Januar 200322 j <? $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]
11. Januar 200322 j 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
11. Januar 200322 j du solltest aber schon wissen, ob du Linux oder Windows benutzt auf deinem Rechner ??
11. Januar 200322 j nich auf meinem, das kommt im geschäft auf nen rechner und der ist wahrscheinlich linux
11. Januar 200322 j 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
11. Januar 200322 j 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 !
11. Januar 200322 j exec("/full/path/to/ping -n 10", $output, $error); so sollte es jetzt aber laufen ich hatte die params von exec vergessen
11. Januar 200322 j @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
11. Januar 200322 j 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
11. Januar 200322 j 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
12. Januar 200322 j 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
13. Januar 200322 j 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 !
13. Januar 200322 j 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
15. Januar 200322 j @palvoelgyi in dem man unter Linux zumindest Zugrifsrechte auf die Ping-Datei ändert
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.