Willkommen in der Webstatt Zum Webstatt Blog und Stories
Chi Wang Chi Wang am 01.10.06 19:30

N'abend.
Ich bin vor paar Tagen durch zufall auf Perl gestoßen und bin gleich auch ein wenig begeistert, und hab mich nun drangesetzt einen kleinen IRC Bot damit zu schreiben.
In erster Linie soll er erstmal nur zum Server connecten, einen Channel joinen und da idlen ^^

Hier mein bisheriger Code:

#!/usr/bin/perl
use IO::Socket;
use Switch;
use Digest::MD5 qw(md5_hex);

$server = 'irc.chaoz-irc.org';
$port = '6667';
$user = 'wangbot wangbot wangbot wangbot';
$nick = 'wangbot';

$channel = '#wang';
$channelpasswd = 'china';

$owner = 'Wang';
$passwd = '';



$conn = IO::Socket::INET->new(PeerAddr=>$server, PeerPort=>$port, Proto=>'tcp', Timeout=>'30') || print 'ERROR: Couldn\'t establish a connection to '.$server.".\n";

print $conn 'USER '.$user.'\r\n';
print $conn 'NICK '.$nick.'\r\n';
print $conn 'JOIN '.$channel.' '.$channelpasswd.'\r\n';

while ($datain = <$conn>) {

## show data in the cmd
print $datain;

# log Data
if ($datain =~ m/\privmsg $channel/) {
open(CHANLOG,'>>'.$channel.'.log');
print CHANLOG "$datain";
close (CHANLOG);
} else {
open(CHANLOG,'>>'.$server.'.log');
print CHANLOG "$datain";
close (CHANLOG);
}

# ping.... pong!
if ($datain =~ m/^PING (.*?)$/gi) {
print $conn 'PONG '.$1.'\n';
}
}


So..
Also eigentlich sollte er nun Connecten => Channel joinen..
Aber iwie klappt das net:

C:\Documents and Settings\Test\Desktop>perl ircbot1.pl
:Ascofun.Chaoz-IRC.org NOTICE AUTH :*** Looking up your hostname...
:Ascofun.Chaoz-IRC.org NOTICE AUTH :*** Found your hostname (cached)
:Ascofun.Chaoz-IRC.org NOTICE AUTH :*** Checking ident...
:Ascofun.Chaoz-IRC.org NOTICE AUTH :*** No ident response; username prefixed wit
h ~
ERROR :Closing Link: [85.181.77.137] (Ping timeout)


Er hängt bei "No ident response; username prefixed with ~"
und nach ner Zeit kommt der Error :(
Weiß jemand Rat?

Edit:

Hab den Fehler: '\r\n' => "\r\n"

netcup.de Warum gibt es hier Werbung?
milahu milahu am 01.10.06 20:16

Solltest dich mal bei O'Reilly umsehn :]

nuit nuit am 01.10.06 20:59

ich weise nur auf:
http://search.cpan.org/~jmuhlich/Net-IRC-0.75/IRC.pm

warum etwas neu coden, wenn es schon gibt ;D also das modul *g* dass finde ich an perl so toll...es gibt fast für alles ein modul

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt