Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Ping auswerten

Hallo

ich möchte mittels PHP Script einen ping auf PC im Netzwerk absetzen und anhand der Antwort den Status der PC´s feststellen.
Mit shellexec funzt auch der ping nur mit ereg kann ich den zurückgegeben string nicht auswerten. Ich versteh es nicht, anscheinend liegt das an den pagebreaks die mit zurück kommen. So schauts in etwa aus

$shellaus=shellexec(ping hostname)
if(ereg("Zeitüberschreitung"))
{echo "Offline"
}
else
{
echo "online"
}
Anscheinen vergleicht er hier aber nur die erste Zeile von $shellaus.
Hat jemand ne andere Idee?

System:
Win2K, PHP5

Danke für eure Mithilfe.

Hier gehts zum Orginal Eintrag "Ping auswerten" im Forum

Antworten

Laut php.net gibt es die Funktion shellexec nicht sondern lediglich shell_exec().
Versuch statt ereg() einfach mal preg_match().

So far...
Matthias


2.

Hi,

danke für die schnelle Antwort.
Ja sicher gibts die Funktion nicht.....
Egal ich hab jetzt, dank der tollen funktion "Ähnliche_Themen()" eine Lösung gefunden.
Ich zähle die Zeilen per array count, bei offline rechner sind es weniger als bei online rechner.


mfg, amdré!


3.

Darauf würde ich mich aber nicht unbedingt verlassen. Wenn der PC nicht bekannt ist (sprich der Hostname) dann wird der Ping gar nicht erst ausgeführt, wenn aber eine IP eingegeben wird, dann ähnelt sich die Ausgabe sehr und müsste genausoviele Elemente enthalten.


4.

Nur mal als kleine Anregung wie man es Lösung könnte

Code:                   In Zwischenablage kopieren (nur IE)
1">

Und bitte vergiss die blöde Idee mit dem array count und den Zeilen!


5.

ja sehr gut....danke , das var_dump ding hat mir noch gefehlt in meinem puzzel....das passt ganz gut da rein.


6.

em du weißt aber schon was var_dump macht?!?

[doc]var_dump[/doc]


7.

Jap, ich hab mir das angeschaut und vergleich jetzt die stelle des arrays an der die erste antwort zurück kommt. mit var_dump konnte ich mir anschauen an welcher stelle des arrays die infos stehen.
hier der code. Vorher kommen noch ein paar zählerschleifen und abfragen, aber im grunde siehts so aus.
Kann mal irgendjemand den hintergrund von dieser TextBox etwas heller schrauben, ich seh den courser echt total schlecht.....das ist nervig

$online[$nr] = array();
exec("ping -n 1 $host[$nr]",$online[$nr]);
if(!ereg("Antwort",$online[$nr][3])) {

$out[$z]=$host[$nr].">>>Offline<<<\n\n";

} else {

$out[$z]=$host[$nr]."Online\n\n";
}


8.

Du solltest noch anstatt von den (ver)alten(ten) ereg* Funktionen die neueren preg_* Funktionen benutzen, um mit Regülären Ausdrücken zu arbeiten.


9.

wieso?


10.

Weil die ereg* veraltet sind ;)


11.

... und langsamer sind !


12.

achso...naja mach ich bei gelegenheit mal......
mal na ganz andere frage...was schafft ihr so den ganzen tag???


13.

Genug um mich Bezahlen zu lassen ;P

Wieso?


14.

Zitat:
was schafft ihr so den ganzen tag???
Schüler :D


15.

johnpatcher du Glückpilz ;)

Ich bin Webentwickler und kann den ganzen lieben langen Tage programmieren ;P


Hier gehts zum Orginal Eintrag "Ping auswerten" im Forum
 
phpforum.de | Impressum