Server pingen

Ardaric

Erfahrenes Mitglied
Hallo,

kann man mit Flash einen Server anpingen? So wie der MS-Befehl: "ping 64.82.147.219" ? Wenn ja, bitte ich um einen Lösungsansatz.

Danke
Daniel
 
Zuletzt bearbeitet:
Hi,

soweit ich weiß nicht direkt, aber wenn Du beispielsweise PHP auf Deinem Server laufen hast, könntest Du von Flash aus ein Script aufrufen, das den Ping durchführt und den Erfolg/Misserfolg an Flash zurückgibt:
Code:
var lv = new LoadVars();

lv.onLoad = function() {
    trace("Status: " + this.success);
}

lv.pingurl = "http://www.google.de";

lv.sendAndLoad("ping.php", lv, "POST");
Die "ping.php" müsste dann z.B. so etwas zurückgeben:
PHP:
echo ("success=true"); // im Erfolgsfall, oder

echo ("success=false"); // im Fehlerfall

Ob und wie ein Ping vom Server aus möglich ist, solltest Du ggf. im PHP-Forum erfragen (ich denke da z.B. an Dennis' HTTP-Klasse, kenne mich mit der Materie aber zu wenig aus).

Gruß
.
 
Hmm, nee, das geht nicht. Das ist kein Webserver. Ich hätte besser eine IP-Adresse genommen. Außerdem brauche ich die Zeit, die gebraucht wird.
 
Hallo,

meines Wissens müsstest du sowas aber schon mit einer serverseitigen Skriptsprache machen. Ich hab mal eine Anzeige für einen Ping schreiben müssen, da hab ich via Remote-Verbindung wie von Tobi beschrieben eine Funktion in einem PHP-Skript aufgerufen. Ob der Skriptaufruf nun via LoadVars oder Remote erfolgt, ist meines Erachtens egal. Hier die PHP-Funktion:

PHP:
function getload()
{
	   $str = substr(strrchr(shell_exec("uptime"),":"),1);
	   $avs = array_map("trim",explode(",",$str));
	   return $avs[0];
}

gruss
 
Nein, das muss nämlich ein Ping vom Klient zu einem Server sein, leider. Sonst hätte ich im Netz schon etwas gefunden :)
 
Hallo,

du hast recht, obige Funktion gibt die Serverauslastung an und nicht den Ping. Könntest du nicht Tobis Skript nehmen und einfach die Zeit messen, die vom Aufruf bis zur Antwort verstreicht?

In etwa so:
Code:
var lv = new LoadVars();
var stamp = getTimer();
var stamp2;

lv.onLoad = function() {
    stamp2 = getTimer();
    var ping = stamp2 - stamp;
    trace("Millisekunden: " + ping);
}

lv.load("http://www.tutorials.de/index.php");

gruss
 
Zuletzt bearbeitet:
Zurück