# PHP Source Query ## Description This class was created to query game server which use the Source query protocol, this includes all source games, half-life 1 engine games and Call of Duty: Modern Warfare 3 The class also allows you to query servers using RCON although this only works for half-life 1 and source engine games. [Minecraft](http://www.minecraft.net) also uses Source RCON protocol, and this means you can use this class to send commands to your minecraft server while having engine set to source. ### Protocol specifications can be found over at VDC * https://developer.valvesoftware.com/wiki/Server_queries * https://developer.valvesoftware.com/wiki/Source_RCON_Protocol ## Supported Games * All multiplayer games released by Valve: *[Counter-Strike 1.6](http://store.steampowered.com/app/10/), [Counter-Strike: Global Offensive](http://store.steampowered.com/app/730/), [Team Fortress 2](http://store.steampowered.com/app/440/), etc...* * [Rag Doll Kung Fu](http://store.steampowered.com/app/1002/) * [The Ship](http://store.steampowered.com/app/2400/) * [Dino D-Day](http://store.steampowered.com/app/70000/) * [Nuclear Dawn](http://store.steampowered.com/app/17710/) * [Call of Duty: Modern Warfare 3](http://store.steampowered.com/app/115300/) * [Minecraft](http://www.minecraft.net/) **(RCON ONLY!)** * *and many other games that implement Source Query Protocol* ## Example ```php <?php require 'SourceQuery.class.php'; $Query = new SourceQuery( ); try { $Query->Connect( 'localhost', 27015, 3, SourceQuery :: GOLDSOURCE ); print_r( $Query->GetInfo( ) ); print_r( $Query->GetPlayers( ) ); print_r( $Query->GetRules( ) ); $Query->SetRconPassword( 'this_is_your_leet_rcon_password' ); echo $Query->Rcon( 'status' ); } catch( SQueryException $e ) { echo $e->getMessage( ); } $Query->Disconnect( ); ?> ``` ## Functions <table> <tr> <td>Connect( $Ip, $Port, $Timeout, $Engine )</td> <td>Opens connection to a server</td> </tr> <tr> <td>Disconnect( )</td> <td>Closes all open connections</td> </tr> <tr> <td>Ping( )</td> <td>Ping the server to see if it exists<br><b>Warning:</b> Source engine may not answer to this</td> </tr> <tr> <td>GetInfo( )</td> <td>Returns server info in an array</td> </tr> <tr> <td>GetPlayers( )</td> <td>Returns players on the server in an array</td> </tr> <tr> <td>GetRules( )</td> <td>Returns public rules <i>(cvars)</i> in an array</td> </tr> <tr> <td>SetRconPassword( $Password )</td> <td>Sets rcon password for later use with <i>Rcon()</i></td> </tr> <tr> <td>Rcon( $Command )</td> <td>Execute rcon command on the server</td> </tr> </table> ## License > *This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.<br> > To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/*