$ip = "77.241.194.220"; $port = "27015"; $packet = "\xFF\xFF\xFF\xFFTSource Engine Query\x00"; 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; } if(!$live_server = fsockopen("udp://".$ip.":".$port."")) { $output = "Off"; } 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 != '') { $players = $players; } else { $players = "0"; } if ($maxplayers != '') { $maxplayers = $maxplayers; } else { $maxplayers = "0"; } if ($players < $maxplayers) { $output = "On"; } else { $output = "Full"; } if ($output != "Full" and $players != "0" or $maxplayers != "0") { $output = $output; } else { $output = "Off"; } if ($map != '') { $map = "".$map.""; } else { $map = "-----"; } if ($servername != '') { $servername = $servername; } else { $servername = "Serveris neveikia"; } echo "
".$output." | ".$ip.":".$port." | ".$servername." | ".$map." | ".$players."/".$maxplayers." | "; echo "