Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- error_reporting(0);
- $year = date("Y");
- $datum = date("j.M.Y");
- $time = date("H:i:s");
- function timenow() {
- return doubleval(ereg_replace('^0\.([0-9]*) ([0-9]*)$','\\2.\\1',microtime()));
- }
- //
- // Read raw data from server
- //
- function getServerData($command,$serveraddress,$portnumber,$waittime) {
- $serverdata ="";
- $serverdatalen=0;
- if ($waittime< 500) $waittime= 500;
- if ($waittime>2000) $waittime=2000;
- $waittime=doubleval($waittime/1000.0);
- if (!$cssocket=fsockopen("udp://".$serveraddress,$portnumber,$errnr)) {
- $errmsg="No connection";
- return "";
- }
- socket_set_blocking($cssocket,true);
- socket_set_timeout($cssocket,0,500000);
- fwrite($cssocket,$command,strlen($command));
- //
- $starttime=timenow();
- do {
- $serverdata.=fgetc($cssocket);
- $serverdatalen++;
- $socketstatus=socket_get_status($cssocket);
- if (timenow()>($starttime+$waittime)) {
- $errmsg="Connection timed out";
- fclose($cssocket);
- return "";
- }
- } while ($socketstatus["unread_bytes"] );
- fclose($cssocket);
- return $serverdata;
- }
- $nazov = "Server1";
- $serverip = "217.11.249.93";
- $serverport = 27903;
- $cmd="\xFF\xFF\xFF\xFFTSource Engine Query\x00";
- $serverdata=getServerData($cmd,$serverip,$serverport,2000);
- // Check length of returned data, if < 5 something went wrong
- if (strlen($serverdata)<5) return false;
- // Strip OOB data
- $bytearr = unpack('C*', substr($serverdata,5));
- $servername = "";
- $i = 2;
- while($i < sizeof($bytearr)) {
- if($bytearr[$i] == 0) break;
- $servername .= chr($bytearr[$i]);
- $i++;
- }
- $mapname = "";
- $i++;
- while($i < sizeof($bytearr)) {
- if($bytearr[$i] == 0) break;
- $mapname .= chr($bytearr[$i]);
- $i++;
- }
- $modname = "";
- $i++;
- while($i < sizeof($bytearr)) {
- if($bytearr[$i] == 0) break;
- $modname .= chr($bytearr[$i]);
- $i++;
- }
- $gamename = "";
- $i++;
- while($i < sizeof($bytearr)) {
- if($bytearr[$i] == 0) break;
- $gamename .= chr($bytearr[$i]);
- $i++;
- }
- $playercount = $bytearr[$i+3];
- $maxcount = $bytearr[$i+4];
- echo("\nServer name: " . $servername);
- echo("\nMap name: " . $mapname);
- echo("\nMod name: " . $modname);
- echo("\nGame: " . $gamename);
- echo("\nPlayer count: " . $playercount);
- echo("\nMaximum players: " . $maxcount);
- echo("\n");
- ?>
Advertisement
Add Comment
Please, Sign In to add comment