<?php

  $subst 
= array(
    
"\"#000000\"""\"#DA0120\"""\"#00B906\"""\"#E8FF19\""//  1
    
"\"#170BDB\"""\"#23C2C6\"""\"#E201DB\"""\"#FFFFFF\""//  2
    
"\"#CA7C27\"""\"#757575\"""\"#EB9F53\"""\"#106F59\""//  3
    
"\"#5A134F\"""\"#035AFF\"""\"#681EA7\"""\"#5097C1\""//  4
    
"\"#BEDAC4\"""\"#024D2C\"""\"#7D081B\"""\"#90243E\""//  5
    
"\"#743313\"""\"#A7905E\"""\"#555C26\"""\"#AEAC97\""//  6
    
"\"#C0BF7F\"""\"#000000\"""\"#DA0120\"""\"#00B906\""//  7
    
"\"#E8FF19\"""\"#170BDB\"""\"#23C2C6\"""\"#E201DB\""//  8
    
"\"#FFFFFF\"""\"#CA7C27\"""\"#757575\"""\"#CC8034\""//  9
    
"\"#DBDF70\"""\"#BBBBBB\"""\"#747228\"""\"#993400\""// 10
    
"\"#670504\"""\"#623307\""                                // 11
  
);
  
$colors  = array(
    
"^0""^1""^2""^3",        //  1
    
"^4""^5""^6""^7",        //  2
    
"^8""^9""^a""^b",        //  3
    
"^c""^d""^e""^f",        //  4
    
"^g""^h""^i""^j",        //  5
    
"^k""^l""^m""^n",        //  6
    
"^o""^p""^q""^r",        //  7
    
"^s""^t""^u""^v",        //  8
    
"^w""^x""^y""^z",        //  9
    
"^\/""^\*""^\-""^\+",    // 10
    
"^\?""^\@"                   // 11
  
);
  
  function 
get_server_info($host$port)
  {
    
$maxlen   2048;
    
$write    "\xFF\xFFgetInfo\x0012345678";
    
$socket fsockopen('udp://'$host$port$errno$errstr30);
    if (
$socket === false)
    {
      echo 
"Error: $errno - $errstr<br>\n";
    }
    else
    {
      
socket_set_timeout($socket3);
      
$time_begin microtime(TRUE);
      
fwrite($socket$write);
      
$s_info fread($socket$maxlen);
      
$time_end microtime(TRUE);
    }
    
fclose($socket);
    
$ping $time_end $time_begin;
    
$ping $ping 1000;
    
$ping floor($ping);
    return array(
'data' => $s_info'ping' => $ping);
  }
  
  
$x get_server_info($_REQUEST['ip'], $_REQUEST['port']);
  
$c_info explode ("\x00\x00\x00"$x['data'], 2);
  
$g_info explode ("\x00"$c_info[0]);
  
$px_info = array();
  
$p2_info $c_info[1];
  
$index 0;
  
$start TRUE;
  while (
strlen($p2_info) > 0)
  {
    
$a substr($p2_info0- ($start 0));
    
$p2_info substr($p2_info- ($start 0));
    
$start FALSE;
    
$b substr($p2_info0strpos($p2_info"\x00"));
    
$p2_info substr($p2_infostrpos($p2_info"\x00"));
    
$px_info[$index++] = array($a$b);
  }
  
file_put_contents('data.raw'$x['data']);
  echo 
"<pre>";
  echo 
"c_info\n";
  
print_r($c_info);
  echo 
"g_info\n";
  
print_r($g_info);
  echo 
"px_info\n";
  
print_r($px_info);
  echo 
"</pre>";
  
?>
1