ericek111

CS:GO Server Sttatus

Oct 17th, 2015
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.04 KB | None | 0 0
  1. <?php  
  2.  
  3. error_reporting(0);
  4.  
  5.         $year = date("Y");                  
  6.         $datum = date("j.M.Y");  
  7.         $time = date("H:i:s");          
  8.         function timenow() {
  9.                 return doubleval(ereg_replace('^0\.([0-9]*) ([0-9]*)$','\\2.\\1',microtime()));
  10.         }
  11.         //
  12.         // Read raw data from server
  13.         //
  14.         function getServerData($command,$serveraddress,$portnumber,$waittime) {
  15.                 $serverdata                ="";
  16.                 $serverdatalen=0;
  17.                 if ($waittime< 500) $waittime= 500;
  18.                 if ($waittime>2000) $waittime=2000;
  19.                 $waittime=doubleval($waittime/1000.0);
  20.                 if (!$cssocket=fsockopen("udp://".$serveraddress,$portnumber,$errnr)) {
  21.                         $errmsg="No connection";
  22.                         return "";
  23.                 }
  24.                 socket_set_blocking($cssocket,true);
  25.                 socket_set_timeout($cssocket,0,500000);
  26.                 fwrite($cssocket,$command,strlen($command));
  27.                 //
  28.                 $starttime=timenow();
  29.                 do {
  30.                         $serverdata.=fgetc($cssocket);
  31.                         $serverdatalen++;
  32.                         $socketstatus=socket_get_status($cssocket);
  33.                         if (timenow()>($starttime+$waittime)) {
  34.                                 $errmsg="Connection timed out";
  35.                                 fclose($cssocket);
  36.                                 return "";
  37.                         }
  38.                 } while ($socketstatus["unread_bytes"] );
  39.                 fclose($cssocket);
  40.                 return $serverdata;
  41.         }
  42.  
  43.     $nazov = "Server1";
  44.     $serverip = "217.11.249.93";
  45.     $serverport = 27903;
  46.  
  47.     $cmd="\xFF\xFF\xFF\xFFTSource Engine Query\x00";
  48.     $serverdata=getServerData($cmd,$serverip,$serverport,2000);
  49.     // Check length of returned data, if < 5 something went wrong
  50.     if (strlen($serverdata)<5) return false;
  51.     // Strip OOB data
  52.     $bytearr = unpack('C*', substr($serverdata,5));
  53.  
  54.     $servername = "";
  55.     $i = 2;
  56.     while($i < sizeof($bytearr)) {
  57.         if($bytearr[$i] == 0) break;
  58.         $servername .= chr($bytearr[$i]);
  59.         $i++;
  60.     }
  61.     $mapname = "";
  62.     $i++;
  63.     while($i < sizeof($bytearr)) {
  64.         if($bytearr[$i] == 0) break;
  65.         $mapname .= chr($bytearr[$i]);
  66.         $i++;
  67.     }
  68.     $modname = "";
  69.     $i++;
  70.     while($i < sizeof($bytearr)) {
  71.         if($bytearr[$i] == 0) break;
  72.         $modname .= chr($bytearr[$i]);
  73.         $i++;
  74.     }
  75.     $gamename = "";
  76.     $i++;
  77.     while($i < sizeof($bytearr)) {
  78.         if($bytearr[$i] == 0) break;
  79.         $gamename .= chr($bytearr[$i]);
  80.         $i++;
  81.     }
  82.     $playercount = $bytearr[$i+3];
  83.     $maxcount = $bytearr[$i+4];
  84.  
  85.     echo("\nServer name: " . $servername);
  86.     echo("\nMap name: " . $mapname);
  87.     echo("\nMod name: " . $modname);
  88.     echo("\nGame: " . $gamename);
  89.     echo("\nPlayer count: " . $playercount);
  90.     echo("\nMaximum players: " . $maxcount);
  91.     echo("\n");    
  92.  
  93. ?>
Advertisement
Add Comment
Please, Sign In to add comment