QStat
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
- Qstat.org - oficjalna, ale trochę nieaktualna
- SourceForge.net - tam znajdziesz najnowszą wersję.
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.