This routine queries a Unreal Tournament Server and returns Playerinfo
#!/usr/bin/perl -w
use IO::Socket;
sub getplayerinfo($$){
my ($peeraddr,$port) = @_;
my $sock = new IO::Socket::INET (
PeerAddr => $peeraddr,
PeerPort => $port,
Proto => 'udp',
);
die "Could not create socket: $!\n" unless $sock;
$sock->send("\\players\\");
$sock->recv(my $line, 1000);
my @players = split /\\/,$line;
my @result;
while (@players > 16){
my @temp = splice(@players,0,17,'');
push @result, [@temp];
}
close($sock);
return @result;
}
my @players = getplayerinfo('195.149.21.73','7808');
my $i;
my $playerlength = 10;
my $fragslength = 5;
for $i ( 0 .. $#players ) {
if(length($players[$i][2]) > $playerlength){
$playerlength = length($players[$i][2]);
}
if(length($players[$i][4]) > $fragslength){
$fragslength = length($players[$i][4]);
}
}
my $playerspace = $playerlength - 10;
my $fragsspace = $fragslength - 5;
print 'Playername ' . " " x $playerspace . 'Frags ' . " " x $frag
+sspace . 'Ping ' . "\n";
for $i ( 0 .. $#players ) {
my $playerspace = $playerlength - length($players[$i][2]);
my $fragsspace = $fragslength - length($players[$i][4]);
print $players[$i][2] . " " x $playerspace . $players[$i][4] . "
+ " x $fragsspace . $players[$i][6] . "\n ";
}