<?php
include("config.php");
//Forbinder serveren
$fp = fsockopen("
udp://".$serverip, $serverport, &$errno, &$errstr, 5);
if(!$fp) {
echo "<b>Kunne ikke forbinde til serveren</b>";
} else {
//Sender en query om at få detaljer om serveren
$send="\377\377\377\377details".chr(0);
fwrite($fp,$send);
$tmp=fgets($fp,5);
//Sætter alle standard værdi'erne
$text=""; $count=0;
$antal = 0;
$Servernavn = '';
$Servermap = '';
$Serverdir = '';
$Servertype = '';
$Serveractiveclient = '';
$Servermaxclient = '';
$Servertyp = '';
$Serveros = '';
$Serverpass = '';
//Går svaret igennem
do {
$antal++;
$tmp=fgets($fp,1);
//De forskellige informationer sættes
if ($count == 1) {
$Servernavn = $Servernavn.$tmp;
}
if ($count == 2) {
$Servermap = $Servermap.$tmp;
}
if ($count == 3) {
$Serverdir = $Serverdir.$tmp;
}
if ($count == 4) {
$Servertype = $Servertype.$tmp;
}
if ($count == 5) {
if ($antal == 1) {
$Serveractiveclient = $Serveractiveclient.ord($tmp);
}
if ($antal == 2) {
$Servermaxclient = $Servermaxclient.ord($tmp);
}
if ($antal == 4) {
$Servertyp = $Servertyp.chr(ord($tmp));
}
if ($antal == 5) {
$Serveros = $Serveros.chr(ord($tmp));
}
if ($antal == 6) {
$Serverpass = $Serverpass.ord($tmp);
}
}
$text.=$tmp;
if (!ord($tmp)) { $count++; $text.="<br>"; $antal = 0; }
} while ($count<11);
//Password og OS rettes til et tekst
$Serverpass = 'Kræves ikke';
if ($Serverpass == '1') {
$Serverpass = 'Kræves';
}
$Serveros = 'Windows';
if ($Serveros == 'l') {
$Serveros = 'Linux';
}
//Informationen skrives
echo '<table width="400" style="border:0px;">';
echo '<tr><td colspan="2" align="center"><h2>'.$Servernavn.'</h2></td></tr>';
echo '<tr><td colspan="2" align="left"><b>Information:</b></td></tr>';
echo '<tr><td width="50">Map:</td><td>'.$Servermap.'</td></tr>';
echo '<tr><td>Type:</td><td>'.$Servertype.'</td></tr>';
echo '<tr><td>Spillere:</td><td>'.$Serveractiveclient.' af '.$Servermaxclient.'</td></tr>';
echo '<tr><td>Kode:</td><td>'.$Serverpass.'</td></tr>';
echo '<tr><td>OS:</td><td>'.$Serveros.'</td></tr>';
echo '</table>';
//Begynder at hente spillere
echo '<br><table width="400" border="0">';
echo '<tr><td colspan="3" align="left"><b>Spillere:</b></td></tr>';
echo '<tr><td>Id</td><td>Navn</td><td>Frags</td></tr>';
//Sender en query om at få spillere på serveren
$countantal = 2;
$sidstelinje = 0;
$activespillere = 1;
$send="\377\377\377\377players".chr(0);
fwrite($fp,$send);
$tmp=fgets($fp,5);
echo $tmp;
$text=""; $count=0;
$antal = 0;
$spillere = array();
$spillernr = -1;
//Går svaret igennem
do {
$antal++;
$tmp=fgets($fp,1);
if ($count == 1) {
if ($antal == 8) {
//Finder ud af hvor mange aktive der er på serveren og putter det ind i en variabel
$countantal = ord($tmp) * 4 + 1;
$activespillere = ord($tmp);
}
//Udskriver de forskellige informationer om spillerne
if ($antal == 9) {
$spillernr = $spillernr + 1;
$spillere[$spillernr] = array();
$spillere[$spillernr][2] = ord($tmp);
$sidstelinje = $count;
}
if ($antal > 9) {
$spillere[$spillernr][1] = $spillere[$spillernr][1].str_replace("'", "'", $tmp);
}
} else {
if ($antal == 5) {
$spillernr = $spillernr + 1;
$spillere[$spillernr] = array();
$spillere[$spillernr][2] = ord($tmp);
$sidstelinje = $count;
}
if ($antal > 5) {
$spillere[$spillernr][1] = $spillere[$spillernr][1].str_replace("'", "'", $tmp);
}
if ($antal == 1 AND $sidstelinje+1 == $count) {
$spillere[$spillernr][0] = ord($tmp);
}
}
$text = $text.$tmp;
if (!ord($tmp)) { $count++; $text.="<br>"; $antal = 0; }
} while ($count<$countantal);
//Skriver hvis der ikke er nogle på serveren
if ($activespillere == 0) {
echo "<tr><td colspan='3' align='center'>Ingen aktive spillere</td></tr>";
} else {
//Udskriver spillerne hvis der er nogle
for ($i = 0; $i < sizeof($spillere); $i++) {
echo "<tr><td>".$spillere[$i][2]."</td><td>".$spillere[$i][1]."</td><td>".$spillere[$i][0]."</td></tr>";
}
}
echo "</table>";
//Lukker forbindelsen til serveren
fclose($fp);
};
?>
jeg bruger denne kode til at få noget info om en cs server!
du skal fx skrive server.php?serverip=212.97.202.28&serverport=27016 så det det..