Hi
Ich brauch mal eure hilfe.
Ich möchte meinen samp Server der auf meinem v-server läuft über
fsock abfragen und eine simple status Ausgabe machen wie zb. Server online oder Server offline.
Ich suche dafür ein passendes Script.
Ich habe schon viele fsock Scripts probiert doch alle geben mir entweder eine weiße Seite als Ausgabe oder einfach nur ein offline
obwohl der Server 100 prozentig läuft.
unteranderem auch (von R4nk3d) dieses script:
PHP
<php?
define("game_server_host","***.***.***.***");
define("game_server_port","7777");
function GetGTAServerStatus($image,$hostname=game_server_host,$port=game_server_port)
{
$realtimeout = ini_get("default_socket_timeout");
ini_set("default_socket_timeout","1");
if(!isset($image)) $image = 1;
if(!isset($hostname)) $fp = fsockopen("udp://".game_server_host, game_server_port, $errno, $errstr);
else if(isset($hostname) && !isset($port)) $fp = fsockopen("udp://".$hostname, 7777, $errno, $errstr);
else if(isset($hostname) && isset($port)) $fp = fsockopen("udp://".$hostname, $port, $errno, $errstr);
ini_set("default_socket_timeout",$realtimeout);
if($fp)
{
$packet = 'SAMP';
$packet .= chr(strtok($hostname, '.')).chr(strtok('.')).chr(strtok('.')).chr(strtok('.'));
$packet .= chr($port & 0xFF);
$packet .= chr($port >> 8 & 0xFF);
fwrite($fp, $packet.'i');
fread($fp, 11);
$is_passworded = ord(fread($fp, 1));
$plr_count = ord(fread($fp, 2));
$max_plrs = ord(fread($fp, 2));
$strlen = ord(fread($fp, 4));
$hostname = fread($fp, $strlen);
fclose($fp);
if(strlen($hostname) > 0)
{
if($image) echo("<center><a href=\"status.php\"><img src=\"./images/serverup.png\" alt=\"The Game Server Is Up!\" border=\"0\"></a></center>");
return 1;
}
if(strlen($hostname) == 0)
{
if($image) echo("<center><img src=\"./images/serverdown.png\" alt=\"The Game Server Is Down!\"></center>");
return 0;
}
}
if($image) echo("<center><img src=\"./images/serverdown.png\" alt=\"The Game Server Is Down!\"></center>");
return 0;
}
?>
Alles anzeigen
Es giebt mir als ausgabe:
Code
> 8 & 0xFF); fwrite($fp, $packet.'i'); fread($fp, 11); $is_passworded = ord(fread($fp, 1)); $plr_count = ord(fread($fp, 2)); $max_plrs = ord(fread($fp, 2)); $strlen = ord(fread($fp, 4)); $hostname = fread($fp, $strlen); fclose($fp); if(strlen($hostname) > 0) { if($image) echo("
"); return 1; } if(strlen($hostname) == 0) { if($image) echo("
"); return 0; } } if($image) echo("
"); return 0; } ?>
Vielleicht kennt ihr den Fehler ja
Bin ich den mit der Annahme richtig das der udp Port in meinem fall 7777 ist ?
und was ist den der tcp Port von einem samp Server?
Ich hoffe ihr könnt mir helfen.
Danke schonmal im vorraus.
mfg
Hanfo