# HG changeset patch # User Dan # Date 1226779288 18000 # Node ID d86ea89358ec1c98b225baa0d1ee0f121650eedc # Parent e2f6e3af99596f1d460b1b9d7c2beba03a6f79b6 Added IP logger module. diff -r e2f6e3af9959 -r d86ea89358ec libirc.php --- a/libirc.php Sat Nov 15 15:00:52 2008 -0500 +++ b/libirc.php Sat Nov 15 15:01:28 2008 -0500 @@ -249,6 +249,7 @@ private function handle_privmsg($message) { $message = self::parse_message($message); + $message['message'] = preg_replace('/^(.+?):/', '', $message['message']); $ph = $this->privmsg_handler; if ( @function_exists($ph) ) return @call_user_func($ph, $message); diff -r e2f6e3af9959 -r d86ea89358ec modules/iplogger.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/modules/iplogger.php Sat Nov 15 15:01:28 2008 -0500 @@ -0,0 +1,107 @@ + + $basenick = basenick('enanobot|debug'); + // $basenick = 'enanobot' + + * @param string Nickname + * @return string + */ + +function basenick($nick) +{ + if ( preg_match('/^`/', $nick) ) + { + $nick = substr($nick, 1); + } + return preg_replace('/(`|\|)(.+?)$/', '', $nick); +} + +/** + * Resolve an IP address. First goes by checking if it's a mibbit or CGI-IRC IP/user, then performs lookups accordingly. + * @param string Hostname + * @param string Username + * @return string IP address + */ + +function resolve_ip($host, $user) +{ + if ( $host == 'webchat.mibbit.com' ) + { + return hex2ipv4($user); + } + return gethostbyname($host); +} + +function hex2ipv4($ip) +{ + $ip = preg_replace('/^0x/', '', $ip); + $ip = str_split($ip, 2); + foreach ( $ip as &$byte ) + { + $byte = hexdec($byte); + } + return implode('.', $ip); +}