[perle]recuperer un mot cle sur irc

recuperer un mot cle sur irc [perle] - Perl - Programmation

Marsh Posté le 23-04-2004 à 00:24:45    

bonsoir,
je voudrai faire un mini (micro?) bot; enfait j'ai dejà mon perle qui fonctionne mais le probleme c'est que pour le lancer je fais: /andesiup
alors que je voudrai que n'importe qui puisse dire:
matbot: andesiup
ou juste andesiup
 
enfin voilà je voudrai rendre accessible mon script
merci pour vos reponse et/ou votre attention
++

Reply

Marsh Posté le 23-04-2004 à 00:24:45   

Reply

Marsh Posté le 23-04-2004 à 02:15:17    

bin deja post un peu de code
 
jsuis pas trop mal en perl, mais jai aucune notion de la relation avec IRC
 
post du code et jvais bien m'y retrouver


---------------
http://www.boincstats.com/signature/user_664861.gif
Reply

Marsh Posté le 23-04-2004 à 09:33:57    

le perle c'est pour faire des colliers? :o
sinon comme a dit burgergold montre nous donc du code ça sera plus facile.

Reply

Marsh Posté le 23-04-2004 à 14:00:57    

lu, un pti bout de code perl pour se connecter a irc (le serv ici c 213.91.4.37).
en +, lorsquu'il parse la commande stat sur le chan il se connecte a un ftp local pour recup des info:
 


my ($hostname, @lines, $nick, $channel);
$hostname = "213.91.4.37";
$nick = $ARGV[0];
$channel = "#test32654";
 
use Net::Telnet ();
 
$irc = new Net::Telnet (Telnetmode => 0);
$ftp = new Net::Telnet (Telnetmode => 0);
 
$irc->open(Host => $hostname,Port => 6667);
 
sub irc_cmd  
{
 $irc->print("$_[0]\n" );
}
 
sub ftp_check
{
 my ($reponse);
 $ftp->open(Host => "127.0.0.1" ,Port => 25001);
 $ftp->print("user kjlkjlj" );
 $ftp->print("pass xxxxxx" );
 $ftp->print("quit" );
 @line = $ftp->getlines(TimeOut => 5);
 foreach $line (@line) {
  if ( $line =~ /(.*)time is (.*),/i ) {
   $reponse=$reponse."2Time1[$2] ";
  }
  if ( $line =~ /(.*)up for (.*)/i ) {
   $reponse=$reponse."2UpTime1[$2] ";
  }
  if ( $line =~ /(.*)Current users          :      (.*)/i ) {
   $reponse=$reponse."2Nb users1[$2] ";
  }
  if ( $line =~ /(.*)Kb downloaded      :      (.*) K/i ) {
   $reponse=$reponse."2Kb down1[$2 Kb] ";
  }
  if ( $line =~ /(.*)Average througput  :     (.*) /i ) {
   $reponse=$reponse."2Speed moy1[$2 Kb/s] ";
  }
  if ( $line =~ /(.*)Current througput    :     (.*) /i ) {
   $reponse=$reponse."2Speed1[$2 Kb/s] ";
  }
 }
 $irc->print("privmsg #moi:$reponse" );
}
 
&irc_cmd("user $nick 127.0.0.1 127.0.0.1 :coucou" );
&irc_cmd("nick $nick" );
$joined=0;
$irc->errmode ("return" );
$ftp->errmode ("return" );
 
while (1) {
 $line = $irc->getline(TimeOut => 3000);
 if ( $line =~ /(.*)ping :(.*)/i ) {
  &irc_cmd("PONG :$2" );
  if ($joined==0) {
   $joined=1;
   &irc_cmd("join $channel" );
   &ftp_check;
  }
 }
 if ( $line =~ /(.*)stat $nick(.*)/i ) {
  &ftp_check;
 }
}

Reply

Marsh Posté le 23-04-2004 à 14:04:42    

en fait au final c tout con
commence par faire via dos un telnet server.irc 6667
et ensuite tu bidouille
la sequence c
user $nick 127.0.0.1 127.0.0.1 :coucou
nick $nick
join $channel
ensuite faut repondre au "ping" par un "pong" :)
c qui est reloo c que ca change parfois entre les differents serv irc :/

Reply

Marsh Posté le 24-04-2004 à 22:20:11    

tu a pleins de module sur CPAN qui pourrons t'aider. Des bots IRC yen a deja une méga chiée en Perl
 
http://search.cpan.org/search?quer [...] t&mode=all

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed