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 "; }

Replies are listed 'Best First'.
Re: Unreal Tournament Server Query
by Anonymous Monk on May 09, 2003 at 11:42 UTC
    Nice rap :)