use strict; use Irssi; use vars qw($VERSION %IRSSI); $VERSION = '1.0'; %IRSSI = ( authors => 'moo', contact => 'none', name => 'test', description => 'play with', license => 'GPLv2', url => 'http://www.none.org' ); # A Server Event has occurred. Check if it is a server NOTICE; # if so, process it. sub event_serverevent { my ($server, $msg, $nick, $hostmask) = @_; # return unless is_server_notice(@_); process_event($server, $msg); } # This function takes a server notice and matches it with a few regular # expressions to see if any special action needs to be taken. sub process_event { my ($server, $msg) = @_; # Client connect: nick, user, host, ip, class, realname # CLICONN raar raar 2*cencur*telesp.net.br 20x.95.7x.1x3 users "RAF.RAF" "irc.cc.com" 0 RAF # [CONN] vwssw tstwvct@*cencur*l.mindspring.com (6x.3x.13.1x4) users ["vwpqfw"] ["irc.cc.net"] ypkrqz #~ /\[CONN\] (.*) (.*)@(.*) \((.*)\) users \[(.*)\] \[(.*)\] (.*)/) { #~ /CLICONN (.*) (.*)@(.*) {(.*)} users {(.*)} {(.*)} 0 (.*)/) { if ($msg =~ /CLICONN (.*) (.*) (.*) {(.*)} users {(.*)} {(.*)} 0 (.*)/) { process_connect($server, $1, $2, $3, $4, $5, $6, $7); return; } } # This function processes a client connect. sub process_connect { my ($server, $nick, $user, $host, $ip, $extra1, $extra2, $realname) = @_; # return if $ip eq '255.255.255.255' Irssi::print("$nick $host $ip"); } Irssi::signal_add_first('server event', 'event_serverevent');