asf
".$data[hostname]."".$data[ip].":".$data[port]."
Игроков:
".$data[players]."/".$data[maxplayers]."Карта:
".$data[mapname]." ";//Настройка блока 1 -------конец----------//******************************************************//Настройка блока 2 -------начало---------- $server_cs_full2 = "
".$data2[hostname]."
".$data2[ip].":".$data2[port]."
Игроков: ".$data2[players]."/".$data2[maxplayers]."
Карта: ".$data2[mapname]."";//Настройка блока 2 -------конец----------//******************************************************//Настройка блока 3 -------начало---------- $server_cs_full3 = "
".$data3[hostname]."
".$data3[ip].":".$data3[port]."
Игроков: ".$data3[players]."/".$data3[maxplayers]."
Карта: ".$data3[mapname]."";//Настройка блока 3 -------конец----------//********************************************************* //Настройка блока 4 -------начало---------- $server_cs_full4 = "
".$data4[hostname]."
".$data4[ip].":".$data4[port]."
Игроков: ".$data4[players]."/".$data4[maxplayers]."
Карта: ".$data4[mapname]."";//Настройка блока 4 -------конец----------//******************************************************//Настройка блока 5 -------начало---------- $server_cs_full5 = "
".$data5[hostname]."
".$data5[ip].":".$data5[port]."
Игроков: ".$data5[players]."/".$data5[maxplayers]."
Карта: ".$data5[mapname]."";//Настройка блока 5 -------конец----------//******************************************************//Настройка блока 6 -------начало---------- $server_cs_full6 = "
".$data6[hostname]."
".$data6[ip].":".$data6[port]."
Игроков: ".$data6[players]."/".$data6[maxplayers]."
Карта: ".$data6[mapname]."";//Настройка блока 6 -------конец----------//******************************************************//Настройка блока 7 -------начало---------- $server_cs_full7 = "
".$data7[hostname]."
".$data7[ip].":".$data7[port]."
Игроков: ".$data7[players]."/".$data7[maxplayers]."
Карта: ".$data7[mapname]."";//Настройка блока 7 -------конец----------//******************************************************//Настройка блока 8 -------начало---------- $server_cs_full8 = "
".$data8[hostname]."
".$data8[ip].":".$data8[port]."
Игроков: ".$data8[players]."/".$data8[maxplayers]."
Карта: ".$data8[mapname]."";//Настройка блока 8 -------конец----------//******************************************************//Настройка блока 9 -------начало---------- $server_cs_full9 = "
".$data9[hostname]."
".$data9[ip].":".$data9[port]."
Игроков: ".$data9[players]."/".$data9[maxplayers]."
Карта: ".$data9[mapname]."";//Настройка блока 9 -------конец----------//******************************************************//Настройка блока 10 -------начало---------- $server_cs_full10 = "
".$data10[hostname]."
".$data10[ip].":".$data10[port]."
Игроков: ".$data10[players]."/".$data10[maxplayers]."
Карта: ".$data10[mapname]."";//Настройка блока 10 -------конец----------//*********************************************************//*****************КОНЕЦ настройки блоков****************** //********************************************************* function monitor_server($ip, $port, $game, $request) { $fp = @fsockopen("udp://$ip", $port, $errno, $errstr, 1); if (!$fp) { return FALSE; } stream_set_timeout($fp, 1, 0); stream_set_blocking($fp, true); if (($request == "settings" || $request == "players")) { $challenge_code = "\xFF\xFF\xFF\xFF\x57"; fwrite($fp, $challenge_code); $buffer = fread($fp, 4096); if (!trim($buffer)) { fclose($fp); return FALSE; } $challenge_code = substr($buffer, 5, 4); } if ($request == "info") { $challenge = "\xFF\xFF\xFF\xFFTSource Engine Query\x00"; } if ($request == "players") { $challenge = "\xFF\xFF\xFF\xFFU".$challenge_code; } if ($request == "settings") { $challenge = "\xFF\xFF\xFF\xFFV".$challenge_code; } fwrite($fp, $challenge); $buffer = fread($fp, 4096); if (!$buffer) { fclose($fp); return FALSE; } if ($request == "settings") { $second_packet = fread($fp, 4096); if (strlen($second_packet) > 0) { $reverse_check = dechex(ord($buffer[8])); if ($reverse_check[0] == "1") { $tmp = $buffer; $buffer = $second_packet; $second_packet = $tmp; } $buffer = substr($buffer, 13); $second_packet = substr($second_packet, 9); $buffer = trim($buffer.$second_packet); } else { $buffer = trim(substr($buffer, 4)); } } else { $buffer = trim(substr($buffer, 4)); } fclose($fp); if (!trim($buffer)) { return FALSE; } //---------------------------------------------------------+ if ($request == "info") { unset($data); $tmp = explode("\x00", $buffer); $place = strlen($tmp[0].$tmp[1].$tmp[2].$tmp[3].$tmp[4]) + 5; $data['gamemod'] = $tmp[3]; $data['hostname'] = $tmp[1]; $data['mapname'] = $tmp[2]; $data['players'] = ord($buffer[$place]); $data['maxplayers'] = ord($buffer[$place + 1]); $data['password'] = ord($buffer[$place + 5]); $data['cs_players'] = $cs_players; $data['ip'] = $ip; $data['port'] = $port; $data['datatype'] = $buffer[0]; // m for steam info $data['version'] = ord($buffer[$place + 2]); // Network Version $data['description'] = $tmp[4]; $data['server_type'] = $buffer[$place + 3]; // D edicated or L isten $data['server_os'] = $buffer[$place + 4]; // W indows or L inux $data['server_secure'] = ord($tmp[14]); // VAC $data['server_bots'] = ord($tmp[15]); // Number of Bots //--------------------------------------------------------+ return $data; } //---------------------------------------------------------+ if ($request == "players") { $player_number = 0; $position = 2; do { $player_number++; $player[$player_number]['id'] = ord($buffer[$position]); $position ++; while($buffer[$position] != "\x00" && $position < 4000) { $player[$player_number]['name'] .= $buffer[$position]; $position ++; } $player[$player_number]['score'] = (ord($buffer[$position + 1])) + (ord($buffer[$position + 2]) * 256) + (ord($buffer[$position + 3]) * 65536) + (ord($buffer[$position + 4]) * 16777216); if ($player[$player_number]['score'] > 2147483648) { $player[$player_number]['score'] -= 4294967296; } $time = substr($buffer, $position + 5, 4); if (strlen($time) < 4) { return FALSE; } list(,$time) = unpack("f", $time); $time = mktime(0, 0, $time); $player[$player_number]['time'] = date("H:i:s", $time); $position += 9; } while ($position < strlen($buffer)); return $player; } //---------------------------------------------------------+ if ($request == "settings") { $tmp = substr($buffer, 2); $rawdata = explode("\x00", $tmp); for($i=1; $i