Blob Blame History Raw
#!/usr/bin/perl5
#
#  quake-mrtg.pl
# 
#  counts the number of players currently on a given
#  quake2/quakeworld/unreal/etc server, using the 'qstat' 
#  program available from: ftp://ftp.activesw.com/pub/quake/
#
#  Usage:
#   Target[quakeserv]:  `quake-mrtg.pl quake.server.com 27910 Q2`
#   
#   ^^^ Gets usage from a Q2 server running on quake.server.com, 
#       port 27910.
#
#  - joey miller, inficad communications, llc.
#    <joeym@inficad.com>, 2/5/1999
#

my($qstat) = "./qstat";

$| = 1;

if ( scalar(@ARGV) < 3 ) {
    print STDERR "usage: $0 server.address port game-type\n\n";
    print STDERR "\tgame-types: QS, QW, QWM, H2S, HWS, Q2, UNS, HLS, SNS\n";
    print STDERR "\tQW = quakeworld, Q2 = quake2, etc, etc\n";
    exit -1;
}

my($serv) = $ARGV[0];
my($port) = $ARGV[1];
my($game) = $ARGV[2];

if ( ! open(QSTAT, "$qstat -raw : -default $game $serv:$port |") ) {
    print STDERR "Couldn't exec $qstat\n";
    exit -2;
}

my($users);
while(<QSTAT>) {
    ($users) = (split(/:/))[6];
    last;
}
close(QSTAT);

print "$users\n";
print "$users\n";
print "0\n";
print "$serv:$port\n";