<?

// !!!!!!!!!!!!!!!!!!!!!!!!!!
//Voor de plaatjes: http://members.chello.nl/a.besten/phpdownloads/cod_server.zip
// !!!!!!!!!!!!!!!!!!!!!!!!!!


########################################
##                                    ##
##     Call of Duty Server Stats      ##
##    Made by =(.T.T.B.)= Spikey      ##
## www.ttb.members.creativehosting.nl ##
##           Version 1.0              ##
##                                    ##
########################################

############################
## Hieronder ff wijzigen! ##
############################

$st_ip = "192.168.1.101"; //ip van de server
$st_port = 28960; //De poort van de server standaard is: 28960

##############################
## Hieronder niet Wijzigen! ##
################################################################
## Maak voor de opmaak een CSS bestand maar ga niet wijzigen! ##
################################################################

function color($text)
 {
 $text = eregi_replace('\^0', '<font color="gray">',$text);
 $text = eregi_replace('\^1', '<font color="red">',$text);
 $text = eregi_replace('\^2', '<font color="green">',$text);
 $text = eregi_replace('\^3', '<font color="yellow">',$text);
 $text = eregi_replace('\^4', '<font color="blue">',$text);
 $text = eregi_replace('\^5', '<font color="lightblue">',$text);
 $text = eregi_replace('\^6', '<font color="pink">',$text);
 $text = eregi_replace('\^7', '<font color="black">',$text);
 $text = eregi_replace('\^8', '<font color="darkblue">',$text);
 $text = eregi_replace('\^9', '<font color="darkred">',$text);
 return $text;
 }
function tel($text)
 {
 $texta = explode("^", $text);
 $aantal = count($texta);
 return $aantal-1;
 }

if(!$_GET["ip"])
{
$s_port = $st_port; 
$s_ip   = $st_ip;
}
elseif(!$_GET["port"])
{
$ex = explode(":",$_GET["ip"]);
 if($ex[1] == ""){$ex[1] = 28960;}
$s_port = $ex[1];
$s_ip   = $ex[0];
}
else
{$s_port = $_GET["port"];
$s_ip   = $_GET["ip"];
}

$s_con = fsockopen("udp://".$s_ip, $s_port);

fwrite($s_con, "ÿÿÿÿ". chr (0x02). "getstatus". chr (0x00));

fread($s_con, 4);

$status = socket_get_status($s_con);

// Geen verbinding

if($status["unread_bytes"] == 0)
{ 
exit("De server is down...");
} 

$empfangen = ""; 

do 
{ 
$empfangen .= fread($s_con, 1); 
$status = socket_get_status($s_con);
} 
while($status["unread_bytes"] != 0);

fclose($s_con);

$daten = explode("\n", $empfangen);
$rules = explode("\\",$daten[1]);

$find_pos = array_search ("sv_hostname", $rules);
$hostname = $rules[$find_pos+1] . "\n";

$aantal = tel($hostname);
$hostname = color($hostname);

$find_pos = array_search ("mapname", $rules);
$mapname = $rules[$find_pos+1];
$mapname = strtolower($mapname);

$playercount = count ($daten);
$playercount = $playercount-3;

$find_pos = array_search ("sv_maxclients", $rules);
$maxplayers = $rules[$find_pos+1] . "\n";

$find_pos = array_search ("g_gametype", $rules);
$gametype = $rules[$find_pos+1] . "\n";

$find_pos = array_search ("scr_killcam", $rules);
$killcam = $rules[$find_pos+1] . "\n";
if($killcam == 1){$killcam = "on";}
else{$killcam = "off";}

$find_pos = array_search ("shortversion", $rules);
$version = $rules[$find_pos+1] . "\n";

$find_pos = array_search ("pswrd", $rules);
$password = $rules[$find_pos+1] . "\n";
if($password == 1){$password = "Yes";}
else{$password = "No";}

$find_pos = array_search ("sv_punkbuster", $rules);
$punkbuster = $rules[$find_pos+1] . "\n";
if($punkbuster == 1){$punkbuster = "On";}
else{$punkbuster = "Off";}


echo "<br><div align='center'>";

echo "<table border='1' cellspacing='0' width='400'>";
echo "<tr>";
echo "<td>";

echo "<center><h2>Call of Duty Server Stats:</h2></center>";

echo "<b>Servername:</b> " . $hostname . "<br>";

for ($i=0; $i<$aantal; $i++)
 {
 echo "</font>";
 }

echo "<b>Server-IP:</b> " . $s_ip . ":" . $s_port . "<br>";

echo "<b>Gametype:</b> " . $gametype . "</font><br>";

echo "<b>Killcam:</b> " . $killcam . "<br>";

echo "<b>Version:</b> " . $version . "<br>";

echo "<b>Password:</b> " . $password . "<br>";

echo "<b>Punkbuster:</b> " . $punkbuster . "<br>";

echo "<b>Players:</b> " . $playercount . "/" . $maxplayers . "<br>";

echo "<b>Current map:</b> " . $mapname . "<br><br>";

if (file_exists("image/" . $mapname . ".jpg"))
 {
 echo "<center><img width='300' src='image/" . $mapname . ".jpg'><br>" . $mapname . "<br><br><center>";
 } 
else
 { 
 echo "<center><img width='300' src='image/custom.jpg'><br>A Custom Map<br><br></center>";
 }


echo "</td></tr></table><br>";

// Speler informatie 

echo "<table cellspacing='0'  width='400' border='1'>";

if ($playercount !=0){

echo "<tr>";
echo "<td><center>Nickname</center></td>";
echo "<td><center>Score</center></font></td>";
echo "<td><center>Ping</center></font></td>";
echo "</tr>";

$x = 1;

while ($x <= $playercount)
{ 

$x++;

$playerinfo = explode('"',$daten[$x]);

$aantal = tel($playerinfo[1]);
$playerinfo[1] = color($playerinfo[1]);

$gegevens = explode(" ",$playerinfo[0]);
$score = $gegevens[0];
$ping = $gegevens[1];

echo "<tr>";
echo "<td>" . $playerinfo[1] . "";

for ($i=0; $i<$aantal; $i++)
 {
 echo "</font>";
 }

echo "</td>";
echo "<td><center>" . $score . "</center></font></td>";
echo "<td><center>" . $ping . "</center></font></td>";
echo "</tr>";

} 

echo "</table>";
} 
else 
{ 
echo "<tr><td>No players are on this server</tr></td>";
echo "</table>";
}

if($_GET["ip"])
 {
 echo "<center><br><br><a href='cod.php?ip=" . $_GET["ip"] . "&port=" . $_GET["port"] . "'>Refresh</a></center> ";
 }
else
 {
 echo "<center><br><br><a href='cod.php'>Refresh</a></center> ";
 }

?>