URL: https://www.overclockers.at/coding-stuff/php_exec_vs_system_220846/page_1 - zur Vollversion wechseln!
Guten tag!
Ich bin auf der suche nach einer Lösung im punkto Ping dein system und sag es ob der client online/ offline ist
Folgende Lösung ist mir dazu eingefallen:
Code: PHP<? if($exec) exec("ping $ip -n 1", $array, $return); else system("ping $ip -n 1", $return); //fuer windoof systeme ergibt haesslich ausgabe if($return) echo "<td> ist <font color=FF0000> <blink> offline </blink> </font><td>"; else echo "<td> ist <font color=00FF00> online</font></td>"; ?>
was passiert wenn ich da als IP "`rm -Rf *`" angeb...?
Was meinst du mit "Kann ich den output irgendwie wegdrehen."?
Schöner und sicherer wäre es, wenn du das ICMP-Protokoll direkt implementierst. Such mal "PHP ICMP" in Google, da sollte einiges kommen.
System und exec sollten eigentlich via PHP nicht aufrufbar sein, da sie sonst einigen Schaden anrichten können. Oder der Webserver/Webhost nutzt einen eigenen, gejailten, rechtemäßig sehr eingeschränkten User. Dann sollte PHP aber auch via fastcgi eingebunden sein.
SOCK_RAW braucht root-Rechte, bzw. entsprechende Capabilities - zumindest auf POSIX-OS. Deswegen ist ping auf den allermeisten GNU/Linux-Distros immer noch als setuid-root Binary installiert. Ich fuerchte, selber wird er sich die Pakete also als unprivilegierter Webserver-User mit PHP nicht basteln koennen.
Sich auf ICMP ECHo zu verlassen um zu bestimmen, ob ein Host online oder offline ist, ist aber ohnehin zu schwach, als dass ich mich darauf verlassen wollen wuerde. Meine Frage also: was willst du genau erreichen? 
Zitat von watchoutWas meinst du mit "Kann ich den output irgendwie wegdrehen."?
Zitat von COLOSSUSMeine Frage also: was willst du genau erreichen?
Dann wuerde ich dafuer sorgen, dass die Info zu dir kommt - nicht, dass du dir die Info _vielleicht_ besorgen kannst. SNMP ist das Stichwort.
Oder Nagios, teilweise in Verbindung mit SNMP. Gibt es doch alles schon fertig und frei, warum das Rad neu erfinden?
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026