begin process at 2008 05 16 05:35:23
1 173 216 membres
58 nouveaux aujourd'hui
13 970 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PHPBOT POUR IRC


Information sur la source

Catégorie :Réseau & Internet Classé sous : b0t, irc, php, V4mp Niveau : Initié Date de création : 22/09/2007 Vu / téléchargé: 3 444 / 103

Note :
2 / 10 - par 1 personne
2,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

Bon j'ai codé un ptit bot en php pour irc, très basique je le post pour des améliorations si vous pourriez m'aider pour l'autojoin je n'arrive pas a le programmer.. , euh voila je vous met le batch qui me sert a  lancer le bot(je suis sous win)!

Source

  • la source PHP :
  • <?php
  • //B0t codé par Vamp.
  • //bot irc.
  • $socket = fsockopen( 'servor' , port en générale[6667] );//connection a worldnet par le port 6667.
  • if (!$socket) exit(0);//si la socket ne repond pas le programme ce ferme.
  • fputs( $socket , "USER Host :pseudo\r\n" );//paramêtre :USER (host)(pseudo).
  • fputs( $socket , "NICK nickname\r\n" );//NICK du bot (pseudo).
  • fputs( $socket , "identify password\r\n");//mot de pass pour l'authentification.
  • fputs( $socket , "JOIN #php,#channel\r\n");//chan que le bot va joindre.
  • fputs( $socket , "PRIVMSG plop!! :\r\n");//msg
  • while(1)//boucle pour la connection.
  • {
  • $data = fgets($socket, 1024);
  • $data = trim($data);
  • echo $data;
  • $tab = explode(" ",$data);
  • if($tab[0] == "PING")
  • {
  • fputs($socket, "PONG $tab[1]\r\n");
  • echo "PING PONG OK\n";
  • }
  • //fonction du B0t
  • if($tab[3] == ":!clock")//affiche l'heure.
  • {
  • fputs($socket, "PRIVMSG ".$tab[2]." :".date('H:i')."\r\n");
  • }
  • if($tab[3] == ":!date")//affiche la date x) .
  • {
  • fputs($socket , "PRIVMSG ".$tab[2]." :".date("d/m/Y")."\r\n");
  • }
  • //script irc du bot
  • if($tab[3] == ":!sh00t" && !empty($tab[4]))//kick un membres.
  • {
  • fputs($socket, "KICK ".$tab[2]." ".$tab[4]." :TG !\r\n");
  • }
  • if($tab[3] == ":!p4rt")//fait partir le B0t d'un channel.
  • {
  • fputs($socket , "PART :pluS !\r\n");
  • }
  • if($tab[3] == ":!q-ageek")//fait quitter le B0t de l'irc.
  • {
  • fputs($socket , "QUIT :Bye!\r\n");
  • }
  • if($tab[3] == ":!topic" && !empty($tab[4]))//Change le topic du channel.
  • {
  • fputs($socket , "TOPIC ".$tab[2]." ".$tab[4]." :\r\n");
  • }
  • //regex..
  • if(preg_match("/(.*) PRIVMSG (.*) :!lenvers (.*)/",$data,$out))//fonction. met un mot a lenvers.
  • {
  • list(,$host,$chan,$arg) = $out;
  • fputs($socket,"PRIVMSG ".$chan." :".strrev($arg)."\r\n");
  • }
  • if(preg_match("/(.*) PRIVMSG (.*) :!say chan:(.*) msg:(.*)/",$data,$out))//envoie un msg sur un chan.
  • {
  • list(,$host,$chan,$chan_dest,$message) = $out;
  • fputs($socket, "PRIVMSG ".$chan_dest." :".$message."\r\n");
  • }
  • }
  • ?>
la source PHP :
<?php
//B0t codé par Vamp.
//bot irc.
$socket = fsockopen( 'servor' , port en générale[6667] );//connection a worldnet par le port 6667.
 
if (!$socket) exit(0);//si la socket ne repond pas le programme ce ferme.
fputs( $socket , "USER Host :pseudo\r\n" );//paramêtre :USER (host)(pseudo).
fputs( $socket , "NICK nickname\r\n" );//NICK du bot (pseudo).
fputs( $socket , "identify password\r\n");//mot de pass pour l'authentification.
fputs( $socket , "JOIN #php,#channel\r\n");//chan que le bot va joindre.
fputs( $socket , "PRIVMSG plop!! :\r\n");//msg

while(1)//boucle pour la connection.
{
  $data = fgets($socket, 1024);
  $data = trim($data);
  echo $data;
  $tab = explode(" ",$data);
 
  if($tab[0] == "PING")
  {
    fputs($socket, "PONG $tab[1]\r\n");
    echo "PING PONG OK\n";
  }
  //fonction du B0t

   if($tab[3] == ":!clock")//affiche l'heure.
 {
    fputs($socket, "PRIVMSG ".$tab[2]." :".date('H:i')."\r\n");
 }
   if($tab[3] == ":!date")//affiche la date x) .
 {
    fputs($socket , "PRIVMSG ".$tab[2]." :".date("d/m/Y")."\r\n");
 }
  //script irc du bot 
   if($tab[3] == ":!sh00t" && !empty($tab[4]))//kick un membres.
 {
    fputs($socket, "KICK  ".$tab[2]." ".$tab[4]." :TG !\r\n");
 }
   if($tab[3] == ":!p4rt")//fait partir le B0t d'un channel.
 {
   fputs($socket , "PART  :pluS !\r\n");
 }  
   if($tab[3] == ":!q-ageek")//fait quitter le B0t de l'irc.
 {
    fputs($socket , "QUIT  :Bye!\r\n");
 }    
   if($tab[3] == ":!topic" && !empty($tab[4]))//Change le topic du channel.
 {
    fputs($socket , "TOPIC ".$tab[2]." ".$tab[4]." :\r\n");
 }	
  //regex..
   if(preg_match("/(.*) PRIVMSG (.*) :!lenvers (.*)/",$data,$out))//fonction. met un mot a lenvers.
  {
  list(,$host,$chan,$arg) = $out;
  fputs($socket,"PRIVMSG ".$chan." :".strrev($arg)."\r\n");
  }
   if(preg_match("/(.*) PRIVMSG (.*) :!say chan:(.*) msg:(.*)/",$data,$out))//envoie un msg sur un chan.
  {
  list(,$host,$chan,$chan_dest,$message) = $out;
  fputs($socket, "PRIVMSG ".$chan_dest." :".$message."\r\n");
  }
}
?>

Conclusion

Bon bah comme vous l'auriez constatez c'est pas du gros code ^^', je veut juste des opinions, critiqué comme des brutes :).

Merci de ne pas utiliser le bot pour nuir au autres chan(flood, insulte, gamineries)!
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

  • signaler à un administrateur
    Commentaire de coucou747 le 23/09/2007 14:48:51 2/10

    t'as pas mis une seule fonction, t'as pas mis une seule classe, t'as pas mis de parsing des reponses, t'as pas mis de gestion de multi-chans, t'as juste mis une demo pour se connecter de facon imperative a un serv IRC

  • signaler à un administrateur
    Commentaire de V4mp le 24/09/2007 12:31:08

    Euh, ouai je sais que c'est pas du bon code mais comment je pourrais l'améliorer jusqu'ici je l'ai fait seul... .

  • signaler à un administrateur
    Commentaire de killer19 le 24/09/2007 20:51:56

    Coucou747, je te trouve un peu dur... Cette source a sa prétention, et ce n'est certainement pas de créer un client IRC nextgen. C'est simplement un petit code de connection, pour mettre en pratique les connections socket.

  • signaler à un administrateur
    Commentaire de coucou747 le 24/09/2007 20:57:23

    killer19, je suis dur, c'est possible, MAIS :
    cette source seule, ne sert a rien...
    pourquoi ? parce-qu'on ne peut pas l'adapter sans quasiment tout recoder...

  • signaler à un administrateur
    Commentaire de V4mp le 25/09/2007 21:53:11

    Roh ça va hein je le post elle sert a rien et alors ? je vais pas tout refaire pour toi -_-...

  • signaler à un administrateur
    Commentaire de coucou747 le 25/09/2007 22:05:56

    refaire 65 lignes pour moi, non, rassures toi, je ne te demandes pas cet effort...
    http://www.phpcs.com/codes/CHAT-IRC_38332.aspx
    la, j'ai deja ma classe de gestion de l'irc... elle date un peu, c'est du php4, mais ...
    http://www.javafr.com/codes/APPLET-IRC-ANNA-BOTEN-BOT-IRC-PERMET-JOUER_43778.aspx
    la j'ai ma classe neuve, pour faire un bot irc en java...

    et ca c'est du reutilisable...

  • signaler à un administrateur
    Commentaire de V4mp le 25/09/2007 22:44:45

    Ok merci de ton partage ça va m'aider :)!

Ajouter un commentaire

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS