imported>Jonathanyc |
imported>Fenhl |
| (11 intermediate revisions by 5 users not shown) |
| Line 1: |
Line 1: |
| RCON is a protocol introduced in 1.9pre4 for the purpose of remote administration of a server. It's basically a shitty implementation of the Source RCON protocol [http://developer.valvesoftware.com/wiki/Source_RCON_Protocol]
| | #REDIRECT [[RCON]] |
|
| |
| == Server Config ==
| |
| | |
| enable-rcon=true
| |
| rcon.password=<your password>
| |
| | |
| == Packet Format ==
| |
| | |
| Integers are little-endian, in contrast with the [[Protocol|Beta protocol]].
| |
| | |
| Responses are sent back with the same Request ID that you send.
| |
| | |
| In the event of an auth failure (i.e. your login is incorrect, or you're trying to send commands without first logging in), request ID will be set to <code>-1</code>
| |
| | |
| {| class="wikitable"
| |
| |-
| |
| ! Field name
| |
| ! Field Type
| |
| ! Notes
| |
| |-
| |
| | Length
| |
| | int
| |
| | Length of ''remainder'' of packet
| |
| |-
| |
| | Request ID
| |
| | int
| |
| | Client-generated ID
| |
| |-
| |
| | Type
| |
| | int
| |
| | <code>3</code> for login, <code>2</code> to run a command
| |
| |-
| |
| | Payload
| |
| | byte[]
| |
| | ASCII text
| |
| |-
| |
| | 2-byte pad
| |
| | byte, byte
| |
| | Two null bytes
| |
| |}
| |
| | |
| == Packets ==
| |
| | |
| === 3: Login ===
| |
| | |
| Outgoing payload: password.
| |
| | |
| If the server returns a packet with the same request ID, auth was successful (note: packet type is 2, not 3). If you get an request ID of -1, auth failed (wrong password).
| |
| | |
| === 2: Command ===
| |
| | |
| Outgoing payload should be the command to run, e.g. <code>time set 0</code>
| |
| | |
| Incoming payload is the output of the command, though many commands return nothing, and there's no way of detecting unknown commands.
| |
| | |
| == Implementation details ==
| |
| | |
| Maximum request length: 1460 (giving a max payload length of 1446)
| |
| | |
| Code exists in the notchian server to split large responses (>4096 bytes) into multiple smaller packets. However, the code that actually encodes each packet expects a max length of 1248, giving a max response payload length of 1234 bytes.
| |
| | |
| == Example implementations ==
| |
| | |
| * https://github.com/barneygale/MCRcon (python, basic, synchronous)
| |
| * https://gist.github.com/1292348 (php, basic, synchronous)
| |
| * https://github.com/tehbeard/node-rcon (node.js, basic, asyncronous)
| |
| * https://bitbucket.org/jonathanyc/rcon.js (RingoJS, synchronous, BSD-licensed)
| |