Jump to content
Sign in to follow this  
therms

I'm going to try and implement the current Source RCON Protocol.

Recommended Posts

therms

Ok, I dont really know what I'm doing when it comes to networking, but I'm determined to use this as an excercise in going beyond basic application automation with AutoIt.

I know some people in the past have made some half-hearted attempts at implementing the Source Rcon Protocol in AutoIt, but I'm going to take a stab at designing some robust, reusable functions.

First of all, there's some documentation on the protocol here.

I'm not completely cognizant of a few things:

1. Threads in the past talked about the rcon protocol being UDP, but it looks like it's now TCP. Am I understanding the above page correctly?

2. Basically, it looks like after establishing a connection, I'll do something like:

TCPSend($SocketForSRCDS, $AnAuthPacket)

My question is, I'm not quite sure how to go about constructing such a packet.

From the above link:

Sending

The command packet format consists of:

* packet size (int)

o the number of bytes from the start of the requestid to the end of string2 (including the null byte). It must be at least 10.

* request id (int)

* SERVERDATA_EXECCOMMAND / SERVERDATA_AUTH (int)

o SERVERDATA_AUTH is currently 3

o SERVERDATA_EXECCOMMAND is currently 2

* string1 (is the command to run).

* string2 must be null ("");

For RCON connections the first command must be a SERVERDATA_AUTH command. If a SERVERDATA_EXECCOMMAND command is sent prior to successful authentication then a SERVERDATA_AUTH_RESPONSE response packet with the failure condition is sent (see the response section for details). The INT's are 32 Bit Little Endian byte order.

Could someone give me a hint at how I go about constructing such a packet? If anyone wants to help me I can give access to a Source server for testing this stuff out.

I'm sure as I work through this I'll have some more questions!

Share this post


Link to post
Share on other sites
therms

Just a little advice on where to start building the packet types described?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.