PHP serverio info ir Dproto
Posted: 2015 Feb 17 19:52
Sveiki, siandien atsinaujinau dproto i naujausia versija.
Iskylo tokia nedidelia problema, sprendimo nezinau.
Pries tai buvo viskas ok kol neatnaujinau dproto , tinklapije rode.
Tai va kaip padaryti kad viel rodytu zemelapi vietoj cstrike
Stai scriptas.
Iskylo tokia nedidelia problema, sprendimo nezinau.
Pries tai buvo viskas ok kol neatnaujinau dproto , tinklapije rode.
Code: Select all
Players: 20/32Map: de_dust2
Code: Select all
Dabar rodo:Players: 20/32Map: cstrike
Stai scriptas.
Code: Select all
<?phpfunction query_server($type,$ip,$port){ global $players; global $map; global $servername; global $maxplayers; global $bots; global $success; $success = 0; $map = "0"; $players = "0"; $servername = "0"; $maxplayers = "0"; $bots = "0"; if ($type == "Counter Strike") //Source Query { $packet = "\xFF\xFF\xFF\xFFTSource Engine Query\x00"; if(!$live_server = fsockopen("udp://".$ip,$port)) { $output = "Neveikia"; } else { fwrite($live_server, $packet); socket_set_timeout($live_server,1,0); $junk = fread($live_server,5); $status = socket_get_status($live_server); $do = 1; $server_info= ""; while($do) { $str_1 = fread($live_server,1); $server_info .= $str_1; $status = socket_get_status($live_server); if($status["unread_bytes"] == 0) {$do = 0;} } fclose($live_server); if (strlen($server_info) > 0) { $success = 1; $servername = getnextstring($server_info); $map = getnextstring($server_info); $junk = getnextstring($server_info); $junk = getnextstring($server_info); $junk = getnextbytevalue($server_info); $junk = getnextbytevalue($server_info); $players = getnextbytevalue($server_info); $maxplayers = getnextbytevalue($server_info); $bots = getnextbytevalue($server_info); if ($players < $maxplayers) { $output = "Veikia"; } else { $output = "Blia servas pilnas"; } } else { $output = "Neveikia"; } } } elseif ($type == "TeamSpeak")// Teamspeak Query { if (!$fp = @fsockopen($ip,$port)) { $output = "Neveikia"; } else { socket_set_timeout($fp,1,0); $data = fread($fp,4); fputs($fp, "quit"); fclose($fp); if ($data == "[TS]") { $output = "Veikia" ; } else { $output = "Klaida"; } } } elseif ($type == "CounterStrike 1.6") { $packet = "\xFF\xFF\xFF\xFFTSource Engine Query\x00"; if(!$live_server = fsockopen("udp://".$ip,$port)) { $output = "Neveikia"; } else { fwrite($live_server, $packet); socket_set_timeout($live_server,1,0); $junk = fread($live_server,5); $status = socket_get_status($live_server); $do = 1; $server_info= ""; while($do) { $str_1 = fread($live_server,1); $server_info .= $str_1; $status = socket_get_status($live_server); if($status["unread_bytes"] == 0) {$do = 0;} } fclose($live_server); if (strlen($server_info) > 0) { $success = 1; $junk = getnextstring($server_info); $servername = getnextstring($server_info); $map = getnextstring($server_info); $junk = getnextstring($server_info); $junk = getnextstring($server_info); $players = getnextbytevalue($server_info); $maxplayers = getnextbytevalue($server_info); if ($players < $maxplayers) { $output = "Veikia"; } else { $output = "Serveris pilnas"; } } else { $output = "Neveikia"; } } } return $output;}function getnextstring(&$data) { $temp=""; $counter=0; while (ord($data[$counter++])!=0) $temp.=$data[$counter-1]; $data=substr($data,strlen($temp)+1); return $temp; } function getnextbytevalue(&$data) { $temp=ord($data[0]); $data=substr($data,1); return $temp; } print query_server("CounterStrike 1.6", "ipadresas", "27015");echo "Players: $players/$maxplayers";echo "Map: $map ";?>