Talk:Master Server Query Protocol

From Valve Developer Community
Revision as of 14:44, 16 April 2007 by Garry Newman (talk | contribs)

Jump to: navigation, search

I don't see any effect when using "\\type\\d". I think it isn't used anymore for the Source protocol. --ViscountPherget 07:55, 12 Sep 2005 (PDT)

I really d0nt know... that's all I found for documentation... they really don't have much
1.2 IP:Port
Steam sends "0.0.0.0:0". 

Does anyone know what this is supposed to be the address of? 

Changing it doesn't appear to affect the results in anyway. 

(Should be the first IP address we are interested in.) 

I think it's the client's IP, coz the client IP is a big factor in what IP's are returned—ts2do 16:24, 21 Jan 2006 (PST)

Filter on country

Hi !

Is there a way to filter game servers by countries instead of regions ? There's a tool doing it but I don't see it anywhere in the Master Server Query Protocol.--madfu

You can do it using the gameservers IPs, search google for IP to Country. --Scott Loyd

Thanks a lot ! I am writing a tool for discovering cstrike servers (sorry for bad english) and I found the web service IP-to-Country which can be queried directly by http (--madfu


Spectate

Why does proxy\1 return only one source server ? Even steam says it is only one.. But when checking the dedicated field which should be l or d - listen/dedicated, the source tv servers has the type p... proxy ? And there are a lot of servers which has type p. But they are not returned using proxy/1.. Broken ? And when trying to send this filter: type\p that doesnt work either. only type\d works. So there is no way of getting all the spectate servers without querying all servers and filter clientside... proxy\1 seems to be working on HL1 servers, at least it returns a lot of servers. —Dstructr

I'm attempting to do this in PHP. I can get the first 231 servers..

		fwrite( $fp, "1", 1 );
		fwrite( $fp, $countrycode, 1 );
		fwrite( $fp, $startip, strlen($startip) );
		fwrite( $fp, 0, 1 );
		fwrite( $fp, $params, strlen($params) );
		fwrite( $fp, 0, 1 );

Where $startip is equal to "0.0.0.0:0" on the first run, then the last ip/port on the next one.. but it always seems to just return the first batch over and over again.. Am I doing it wrong?