The D3 query packet

For all coding issues - MODers and programmers, HTML and more.

Moderators: Jeff250, fliptw

Post Reply
User avatar
iten
DBB Ace
DBB Ace
Posts: 100
Joined: Tue Sep 28, 2004 3:38 pm

The D3 query packet

Post by iten »

I've heard many a time that the query packet to send to servers is documented somewhere. The problem is, I've looked everywhere (well, not everywhere, but a lot of places) and can't find it.

So does anyone know where I could find this documentation? I've already gotten some stuff figured out, but I figured I might as well save myself some time.

This is for two projects, one being D3launch, the other being something really cool (more cool if the query packet has what I want in it.)

Thanks in advance,
-iten
User avatar
Verran
DBB Captain
DBB Captain
Posts: 589
Joined: Thu Nov 05, 1998 12:01 pm
Location: Colorado
Contact:

Post by Verran »

I would also appreciate having access to this info! Thanks!
User avatar
iten
DBB Ace
DBB Ace
Posts: 100
Joined: Tue Sep 28, 2004 3:38 pm

Post by iten »

I'm compiling the information into a nicely readable format and will post it here soon.
SolidAir
DBB Alumni
DBB Alumni
Posts: 2890
Joined: Sat Mar 13, 1999 3:01 am
Location: Orlando, FL

Post by SolidAir »

this is the header I used back in the day when I was coding D3IP (to hold IP addresses of servers)

Code: Select all

/**************************************
* Descent3 Server Request #defines    
*
*
*/

//this data is used to request the players on a Descent3 server. 0x72 is requesting a
//MP_REQUEST_PLAYERS when the D3 Server receives this message. 0x03 should be 0x00 but I'm not sure.
//the packet sniffer says so.
const byte PLAYERS_REQUEST[] = {  0x01, 0x72, 0x03, 0x00 };

const int PLAYERS_SIZE = 4;

//this data is used to request the server info for a descent3 server. For
//instance, the map, mode, and players. 0x29 is what Descent3 sees to know
// that we're requesting data. Don't know about the rest.

const byte SERVINFO_REQUEST[] = { 0x01, 0x29, 0x0b, 0x00,
								  0x01, 0x00, 0x5e, 0x42,
								  0x09, 0x00, 0x00, 0x00,
								  0x00, 0x00, 0x00, 0x00,
								  0x00, 0x00 };
const int SERVINFO_SIZE = 18;

const byte TCPIPSERVINFO_REQUEST[] = { 0x01, 0x1e, 0x0b, 0x00,
									 0x3f, 0x4e, 0x58, 0x42,
									 0x09, 0x00, 0x00, 0x00 };
const int TCPIPSERVINFO_SIZE = 12;

#define SI_INIT_HEADER 21

const byte SERVSTATUS_REQUEST[] = { 0x5c, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5c, 0x00 };

const int SERVSTATUS_SIZE = 9;

//pxo stuff

const byte PXOSERVER_REQUEST[] = { 0x03, 0x29, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
								   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
								   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00,
								   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x61,
								   0x75, 0x74, 0x6f, 0x73, 0x65, 0x6c, 0x65, 0x63,
								   0x74, 0x00 };
const int PXOSERVER_SIZE = 42;

const byte PXOOKAYTHATSENOUGH_REQUEST[] = { 0x03, 0x1d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
											0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
											0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
											0x00, 0x00, 0xdd, 0x64, 0x72, 0x03 };

const int PXOOKAYTHATSENOUGH_SIZE = 30;
Post Reply