Steam Server Query
Posted by HellRaz0r
Friday, September 08, 2006
Description: CS/HL/CZ Server Query Script


;/queryserv <ip:port>
alias queryserv {
  var %serv $gettok($1,1,58), %port = $gettok($1,2,58)
  sockudp -k queryserv %serv %port ÿÿÿÿTSource Engine Query
  sockmark queryserv %serv %port
  set %beginticks $ticks
}
on *:udpread:queryserv:{
  var %ping = $calc($ticks - %beginticks)
  sockread &data
  breplace &data 0 254 32 160 | var %data $bvar(&data,1,$bvar(&data,0)).text
  if %data {
    var %hostname = $gettok(%data,2,254), %map = $gettok(%data,3,254), %gamedir = $gettok(%data,4,254)
    var %mod = $gettok(%data,5,254)
    if (!%pos) var %pos = 1

    var %posn = $pos(%data,$gettok(%data,5,254),%pos), %gamechars = $len($gettok(%data,5,254))
    var %chrclc = $calc(%posn + %gamechars), %bots = $iif($asc($right(%data,1)) == 254,0,$ifmatch)
    var %tmpplayers = $mid(%data,%chrclc,3), %players = $iif($asc($mid(%tmpplayers,2,1)) == 254,0,$ifmatch)
    var %maxplayers = $asc($right(%tmpplayers,1))
    if (%maxplayers == 160) var %maxplayers = 32

    var %string = $gettok(%data,6,254)
    var %players2 = $iif($asc($mid(%players,2,1)) == 254,0,$ifmatch)

    var %pwpos = $calc(%chrclc + $pos(%string,5,1) + 1)
    var %password = $iif($right($mid(%data,%pwpos,6),1) == $chr(254),no,yes)

    var %protocol = $asc($mid(%string,$iif(%players2 == 0,2,3),1))
    if (!%protocol) var %protocol = 0
    var %servertype = $iif($mid(%string,$iif(%players == 0,3,4),1) == d,Dedicated,Listen)
    var %serveros = $iif($mid(%string,$iif(%players == 0,4,5),1) == l,Linux,Windows)
    var %secure = $iif($mid($calc($len(%data) - 1),1) == $chr(254),no,yes)

    echo -a Ip: $replace($sock($sockname).mark,$chr(32),:) ( $+ %ping $+ ms)
    echo -a Hostname: %hostname
    echo -a Map: %map
    echo -a Gamedir: %gamedir
    echo -a Mod: %mod
    echo -a Players: %players
    echo -a Bots: %bots
    echo -a MaxPlayers: %maxplayers
    echo -a Protocol Number: %protocol
    echo -a Server Type: %servertype
    echo -a Server OS: %serveros
    echo -a Password Protected: %password
    echo -a Vac Protected: %secure
    unset %beginticks | sockclose $sockname
  }
}
Submit a comment
Oops! You need to login or register before you can post a comment!

ebaum's world