QStat

Od HLDS.pl
Skocz do: nawigacji, wyszukiwania

Spis treści

Opis

Qstat to napisany w języku C/C++ programik do sprawdzania statusu serwerów gier - poprzez wywołanie bezpośrednie, albo do serwerów master.

Jest to program odpalany w konsoli.


Ten artykuł jest niepełny i wymaga uzupełnienia. Jeżeli jesteś w stanie - postaraj się go uzupełnić.. Pamiętaj, że nawet najmniejsza zmiana jest cenna i pomocna :)


Linki

Wersja

Ogólnie jest miszmasz na ich stronie:)

  • SVN jest zawsze najnowsze - czytaj niżej jak pobrać.
  • 2.11 jest do pobrania z SourceForge.net
  • 2.8 to najnowsza oficjalna, na stronie Qstat.org ale to emeryt z 2005r, a to co jest w repozytoriach to 2.11 ale nie do konca - nie ma ona supportu dla ETQW (wersja w SVN ma)

Instalacja

Windows

Po ściągnięciu zipa i rozpakowaniu mamy wszystko gotowe - warto zajrzeć do plików readme ze słownikiem :)

Linux

Po linuxem trzeba QStat skompilować ze źródeł - więc wymagany jest kompilator C/C++ na przykład gcc.

Można skompilować źródła po ściągnięciu i rozpakowaniu pakietu .tar.gz albo z CVS - ja polecam to drugie jeśli możecie.

SVN

SVN czyli subversion) zawiera najnowsza wersje programu - źródła oraz historię zmian. Większość dystrybucji posiada już zainstalowanego klienta SVN, ew niektóre wymagają doinstalowania (np gentoo) - ale nie mam zamiaru pisać jak się instaluje tutaj pakiety serwera - poszukajcie informacji na necie, albo poproście admina.

Zdanie jest proste, w konsoli linkusa wpisujecie:

svn co https://qstat.svn.sourceforge.net/svnroot/qstat qstat

Pojawi się status aktualizacji plików z serwera, może to troszkę potrwać. Po tej operacji w katalogu qstat2 mamy źródła QStat.

Kompilacja

  • No dobra, mamy źródła w katalogu, wchodzimy do katalogu trunk/qstat2, w środku jest kilkanaście plików i katalogów. Do kompilacji potrzebny jest pakiet autogen oraz automake.
  • Jeśli widzimy tam plik autogen.sh to wpisujemy
./autogen.sh

Powstaną skrypty konfigurujące.

  • W konsoli wpisujemy:
./configure

Pojawi się skrypt wykrywający konfiguracje systemu i konfigurujący pakiet źródle do kompilacji.

  • Potem wpisujemy
make

W tym momencie kompilują się źródła.

  • Ostatni element to wpisanie z prawami superusera/root'a komendy:
make install

Jeśli nie mamy praw superusera/root'a, to możemy po configure dopisać --prefix=/sciezka/do/jakiegos/katalogu, na przykład

./configure --prefix=/var/www/html/mrtg/serwer/bin/

potem make i na końcu make install - wtedy zainstaluje się nie globalnie a do wybranego katalogu.

Testowanie

Uruchamiając program z konsoli bez parametrów powinniśmy uzyskać skrócona informacje jak go używać, na przykład

[kaszpir@bagno]$ qstat
Usage: qstat [options ...]
        [-default server-type] [-cfg file] [-f file] [host[:port]] ...
Where host is an IP address or host name
-a2s            query Half-Life 2 new server
-ams            query America's Army v2.x server
-bfs            query BFRIS server
-codm           query Call of Duty Master server
-cods           query Call of Duty server
-crs            query Command and Conquer: Renegade server
-d3g            query Descent3 Gamespy Protocol server
-d3m            query Descent3 Master (PXO) server
-d3p            query Descent3 PXO protocol server
-d3s            query Descent3 server
-dm3m           query Doom 3 Master server
-dm3s           query Doom 3 server
-efm            query Star Trek: Elite Force server
-efs            query Star Trek: Elite Force server
-eye            query All Seeing Eye Protocol server
-fcs            query FarCry server
-gps            query Gamespy Protocol server
-grs            query Ghost Recon server
-gs2            query Gamespy V2 Protocol server
-gs3            query Gamespy V3 Protocol server
-gs4            query Gamespy V4 Protocol server
-gsm            query Gamespy Master server
-h2s            query Hexen II server
-hl2s           query Half-Life 2 server
-hla2s          query Half-Life server
-hla2sm         query Steam Master server
-hlm            query Half-Life Master server
-hlqs           query Half-Life server
-hls            query Half-Life server
-hrs            query Heretic II server
-hws            query HexenWorld server
-jk3m           query Jedi Knight: Jedi Academy server
-jk3s           query Jedi Knight: Jedi Academy server
-kps            query Kingpin server
-maqs           query Medal of Honor: Allied Assault (Q) server
-mas            query Medal of Honor: Allied Assault server
-mhs            query Medal of Honor: Allied Assault server
-netp           query NetPanzer server
-netpm          query NetPanzer Master server
-nexuizm                query Nexuiz Master server
-nexuizs                query Nexuiz server
-preym          query Prey Master server
-preys          query PREY server
-prs            query Pariah server
-q2m            query Quake II Master server
-q2s            query Quake II server
-q3m            query Quake III Master server
-q3s            query Quake III: Arena server
-q4m            query Quake 4 Master server
-q4s            query Quake 4 server
-qs             query Quake server
-qwm            query QuakeWorld Master server
-qws            query QuakeWorld server
-rss            query Ravenshield server
-rwm            query Return to Castle Wolfenstein Master server
-rws            query Return to Castle Wolfenstein server
-sas            query Savage server
-sfs            query Soldier of Fortune server
-sgs            query Shogo: Mobile Armor Division server
-sms            query Serious Sam server
-sns            query Sin server
-sof2m          query SOF2 Master server
-sof2m1.0               query SOF2 Master (1.0) server
-sof2s          query Soldier of Fortune 2 server
-stm            query Steam Master server
-stma2s         query Steam Master for A2S server
-stmhl2         query Steam Master for HL2 server
-t2m            query Tribes 2 Master server
-t2s            query Tribes 2 server
-tbm            query Tribes Master server
-tbs            query Tribes server
-tm             query TrackMania server
-tremulous              query Tremulous server
-tremulousm             query Tremulous Master server
-ts2            query Teamspeak 2 server
-uns            query Unreal server
-ut2004m                query UT2004 Master server
-ut2004s                query UT2004 server
-ut2s           query Unreal Tournament 2003 server
-warsowm                query Warsow Master server
-warsows                query Warsow server
-woetm          query Enemy Territory Master server
-woets          query Enemy Territory server
-default        set default server type: a2s ams bfs codm cods crs d3g d3m d3p d3s dm3m dm3s efm efs eye fcs gps grs gs2 gs3 gs4 gsm h2s hl2s hla2s hla2sm hlm hlqs hls hrs hws jk3m jk3s kps maqs mas mhs netp netpm nexuizm nexuizs preym preys prs q2m q2s q3m q3s q4m q4s qs qwm qws rss rwm rws sas sfs sgs sms sns sof2m sof2m1.0 sof2s stm stma2s stmhl2 t2m t2s tbm tbs tm tremulous tremulousm ts2 uns ut2004m ut2004s ut2s warsowm warsows woetm woets
-nocfg          Ignore qstat configuration loaded from any default location. Must be the first option on the command-line.
-cfg            read the extended types from given file not the default one
-f              read hosts from file
-R              fetch and display server rules
-P              fetch and display player info
-sort           sort servers and/or players
-u              only display servers that are up
-nf             do not display full servers
-ne             do not display empty servers
-nh             do not display header line.
-cn             display color names instead of numbers
-ncn            display color numbers instead of names
-hc             display colors in #rrggbb format
-tc             display time in clock format (DhDDmDDs)
-tsw            display time in stop-watch format (DD:DD:DD)
-ts             display time in seconds
-pa             display player address
-hpn            display player names in hex
-hsn            display server names in hex
-nh             do not display header
-old            old style display
-progress       display progress meter (text only)
-retry          number of retries, default is 3
-interval       interval between retries, default is 0.50 seconds
-mi             interval between master server retries, default is 2.00 seconds
-timeout        total time in seconds before giving up
-maxsim         set maximum simultaneous queries
-sendinterval           set time in ms between sending packets, default 5
-errors         display errors
-allowserverdups                allow adding multiple servers with same ip:port (needed for ts2)
-of             output file
-af             Like -of, but append to the file
-raw <delim>    output in raw format using <delim> as delimiter
-mdelim <delim> For rules with multi values use <delim> as delimiter
-xml            output status data as an XML document
-Th,-Ts,-Tpt    output templates: header, server and player
-Tr,-Tt         output templates: rule, and trailer
-srcport <range>        Send packets from these network ports
-srcip <IP>     Send packets using this IP address
-H              resolve host names
-Hcache         host name cache file
-carets         Display carets in Quake 3 player names
-d              Enable debug options. Specify multiple times to increase debug level.
-dump           write received raw packets to dumpNNN files which must not exist before
-pkt <file>     use file as server reply instead of quering the server. Works only with TF_SINGLE_QUERY servers
-htmlmode       Convert <, >, and & to the equivalent HTML entities
-htmlnames      Colorize Quake 3 and Tribes 2 player names using html font tags
-nohtmlnames    Do not colorize Quake 3 and Tribes 2 player names even if $HTML is used in an output template.
-showgameport   Always display the game port in QStat output.
-noportoffset   Dont use builtin status port offsets ( assume query port was specified ).
-raw-arg        When used with -raw, always display the server address as it appeared in a file or on the command-line.
-utf8           Use the UTF-8 character encoding for XML output.

Sort keys:
  servers: p=by-ping, g=by-game, i=by-IP-address, h=by-hostname, n=by-#-players, l=by-list-order
  players: P=by-ping, F=by-frags, T=by-team, N=by-name

qstat version 2.10
[kaszpir@bagno]$

jak widać, dla na przykład serwera gry Half-Life Steam można przetestować serwer poniższą komendą:

qstat -a2s 156.17.41.139:27015

Na przykład:

[kaszpir@bagno]$ qstat -a2s 156.17.41.139:27015
ADDRESS           PLAYERS      MAP   RESPONSE TIME    NAME
156.17.41.139:27015    0/16 dod_flash     25 / 0  dod     [PL] Festung-Breslau.pl [DoD 1.3]
[kaszpir@bagno]$

Oczywiście róbcie testy na działającym serwerze :D

Dodatki

Nie chce mi się pisać o template, jakie można wykorzystywać w qstatcie - np można zwracać wyniki jako HTML czy XML, albo do bazy danych.

Eggdrop ma skrypt qstat.tcl ktory po zaladowaniu pozwala na sprawdzanie statusu serwerów online na kanale irca.

Osobiste
Przestrzenie nazw
Warianty
Działania
HLDS.pl - Menu:
Inne
IRC
Inne sekcje:
Znajomi:
Narzędzia