Ahojte, našiel som na nete tento CS 1.6 serverstatus a neviem prečo nefunguje. Packetom ani ničomu podobnému som nerozumel a ani nechcem zachádzať do hĺbky, pretože viem že by mi to trvalo (čiastke toho kódu rozumiem

ale to čo sa zaoberá paketmi, to už nie

). Tu je kód:
Kód:
<?php
error_reporting(E_ALL);
include "../../maincore.php";
require_once THEMES."templates/header.php";
opentable("*** ServerList");
echo "<table width='100%' valign='top' cellpadding='1' cellspacing='1' class='tbl-border'>
<tr>
<td class='tbl2'></td>
<td class='tbl2' align='center'>Názov servera</td>
<td class='tbl2' align='center'>IP:Port</td>
<td class='tbl2' align='center'>Mapa</td>
<td class='tbl2' align='center'>Hráči</td>
<td class='tbl2' width='5%'>Status</td>
</tr>";
CS16("217.11.249.83", "27330");
echo "</table>";
closetable();
include THEMES."templates/footer.php";
function CS16($ip, $port) {
$packet = "\xFF\xFF\xFF\xFFTSource Engine Query\x00";
if (!$server = @fsockopen("udp://".$ip, $port, $errno, $errstr)) {
echo "<tr>
<td class='tbl1' align='center' valign='middle'><img src='".BASEDIR."infusions/server_list/images/cs16.gif' title='Counter-Strike 1.6' alt='Counter-Strike 1.6' /></td>
<td class='tbl1' align='center' valign='middle'>Server je vypnutý...</td>
<td class='tbl1' align='center' valign='middle'>{$ip}:{$port}</td>
<td class='tbl1' align='center' valign='middle'>...</td>
<td class='tbl1' align='center' valign='middle'>0 / 0</td>
<td class='tbl1' align='center' valign='middle'><img src='".BASEDIR."infusions/server_list/images/offline.png' title='Server je Offline' alt='Server je Offline' /></td>
</tr>";
} else {
fwrite($server, $packet);
socket_set_timeout($server, 1, 0);
$junk = fread($server, 5);
$status = socket_get_status($server);
$do = 1;
$server_info = "";
while($do) {
$str = fread($server, 1);
$server_info .= $str;
$status = socket_get_status($server);
if ($status["unread_bytes"] == 0) { $do = 0; }
}
fclose($server);
if (strlen($server_info) > 0) {
$junk = getnextstring($server_info);
$servername = getnextstring($server_info);
$map = getnextstring($server_info);
$junk = getnextstring($server_info);
$junk = getnextstring($server_info);
$players = getnextbytevalue($server_info);
$maxplayers = getnextbytevalue($server_info);
echo "<tr>
<td class='tbl1' align='center' valign='middle'><img src='".BASEDIR."infusions/server_list/images/cs16.gif' title='Counter-Strike 1.6' alt='Counter-Strike 1.6' /></td>
<td class='tbl1' align='center' valign='middle'>{$servername}</td>
<td class='tbl1' align='center' valign='middle'>{$ip}:{$port}</td>
<td class='tbl1' align='center' valign='middle'>{$map}</td>
<td class='tbl1' align='center' valign='middle'>{$players} / {$maxplayers}</td>
<td class='tbl1' align='center' valign='middle'><img src='".BASEDIR."infusions/server_list/images/online.png' title='Server je Online' alt='Server je Online' /></td>
</tr>";
} else {
echo "<tr>
<td class='tbl1' align='center' valign='middle'><img src='".BASEDIR."infusions/server_list/images/cs16.gif' title='Counter-Strike 1.6' alt='Counter-Strike 1.6' /></td>
<td class='tbl1' align='center' valign='middle'>Server je vypnutý...</td>
<td class='tbl1' align='center' valign='middle'>{$ip}:{$port}</td>
<td class='tbl1' align='center' valign='middle'>...</td>
<td class='tbl1' align='center' valign='middle'>0 / 0</td>
<td class='tbl1' align='center' valign='middle'><img src='".BASEDIR."infusions/server_list/images/offline.png' title='Server je Offline' alt='Server je Offline' /></td>
</tr>";
}
}
}
function getnextstring(&$data) {
$temp = "";
$counter = 0;
while(ord($data[$counter++]) != 0) $temp .= $data[$counter-1];
$data = substr($data, strlen($temp)+1);
return $temp;
}
function getnextbytevalue(&$data) {
$temp = ord($data[0]);
$data = substr($data, 1);
return $temp;
}
?>
začal som si vypisovať informácie a zistil som, že mi tie informácie nezíska, presnejšie $server_info
neviete kde môže byť chyba?