1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
|
<?php
/*
Dateiname: serverquery.php
Version: 0.1 (stable)
Erstellt: 11.12.2004
Letzte Änderung: 12.01.2005
Autor: Nighthawk <nighthawk@opferlamm-clan.de>
Support: www.opferlamm-clan.de
------------------------------------------------------------
Beschreibung:
-------------
Dieses Script liest einen "Call of Duty" und "Call of Duty United Offensive"
Gameserver unter verwendung der Quake3 Engine aus.
Ihr gebt einfach bei den Variablen eure IP des Gameservers und dessen Gameport
(Standart 28960) an.
Es wäre schön, wenn du den Headder hier stehen lässt, damit man nachvollziehen kann
woher das Teil kommt. Nicht weil mein Nick oben steht, aber das Script wird
weiterentwickelt und sobald es neue Versionen gibt erfahrt ihr es auf der oben
angegebenen Webseite. Und wenn einer das hier als sein Script weiter geben möchte,
nehmt bitte den Headder raus, dann leistet auch bitteschön Support :-)
So, das wars von mir. Die erweiterte Version, liegt zwar schon auf meinem Rechner,
hat aber noch zwei Bugs die ich fixe sobal ich wieder Zeit hab.
Greetz Nighthawk
*/
// Variablen:
//-----------
// Hier trägst du deine IP ein
$ip = "80.190.198.209";
//Hier trägst Du Deine Portnummer eures Gameservers ein ( default 28960 )
$port = 28960;
//////////////////////////////////////////////////////////////////////////////////////
// Ab hier bitte nichts mehr ändern ! //
//////////////////////////////////////////////////////////////////////////////////////
$erg = array();
$command = "\xFF\xFF\xFF\xFFgetstatus\n";
$verbindung=fsockopen("udp://".$ip."",$port,$errnr) or die($error."(".$errno.")") ;
fwrite($verbindung,$command,strlen($command));
do
{
$serverdata.=fgetc($verbindung);
$serverdatalen++;
$socketstatus=socket_get_status($verbindung);
}
while ($socketstatus["unread_bytes"] );
fclose($verbindung);
$serverdata = substr($serverdata,strpos($serverdata,"\n")+1);
$kette = strtok($serverdata,"\\");
while($kette)
{
$x++;
$array_name = $kette;
$kette = strtok("\\");
$erg["".$array_name.""] = "".$kette."";
$kette = strtok("\\");
}
$players=substr($serverdata,strpos($serverdata,"\n")+1);
$players = substr($players,0,strlen($players)-1);
$playercount=0;
if (strlen($players) > 0)
{
$playercollection=explode("\n",$players);
while (list($key,$data) = each ($playercollection))
{
eregi("^([-0-9]+) ([-0-9]+) \"(.*)\"",$data,$player);
$ol_playerinfo[$key]=array("pkt"=>$player[1],"ping"=>$player[2],"name"=>$player[3]);
$playercount++;
}
}
$erg["current_player"] = $playercount;
?> |