Accueil > > > 1 BOT POUR L'IRC AVEC SOCKET!
1 BOT POUR L'IRC AVEC SOCKET!
Information sur la source
Description
Le code d'un bot que j'ai codé rapidement, j'ai pas commenté mais je suis sur que vous allez comprendre(code simple), et puis si vous avec un probleme contacter moi a ggreg4@laposte.net ou sur #php (irc: chat1.voila.fr Pseudo: PsY4). sinon ne marche pas sous des serveurs du style de multimania pour cause de fonction désactivé.
J'en est refait une meilleur version, pour ceux que ca intéraisse mailler moi!
http://xtrem.tuxfamily.org/rfc1459fr.html <- les Protocoles irc en francais (ils peuvent toujours servir O_o )!
Source
- <?
- set_time_limit(0);
- $serv="chat1.voila.fr";
- echo "connect to $serv...<br>";
- $fp=fsockopen("$serv","6667");
- echo "Ident...<br>";
- fputs($fp,"user PsY4 UNIX ggreg4@laposte.net PHP_BOT\n");
- $mennick="ev-a[PsY4_BoT_PhP]";
- fputs($fp,"nick $mennick\n");
- sleep(1);
-
- while($new=fgets($fp,1024)){
- $new = str_replace("\r", "", $new);
- $new = str_replace("\n", "", $new);
-
- // :ServBoT!p@boss PRIVMSG #php :.ds #kaya salut
- $tab_temp0=explode(":",$new);
- $msg_void=$tab_temp0[0]; //ping
- $msg_info=$tab_temp0[1]; //ServBoT!p@boss PRIVMSG #php
- $msg_user=$tab_temp0[2]; //.ds #kaya salut ca va
- $msg_void1=$tab_temp0[3]; //.ds #kaya salut ca va
-
-
- // .ds #kaya salut
- $tab_temp1=explode(" ",$msg_user);
- $msg_user_param0=$tab_temp1[0]; //.ds
- $msg_user_param1=$tab_temp1[1]; //#kaya
- $nbtt=count($tab_temp1);
- $nbtt--;
- for($i=2;$i<=$nbtt;$i++){
- $msg_user_param2.=$tab_temp1[$i]." "; //salut ca va
- }
-
- // ServBoT!p@boss PRIVMSG #php
- $tab_temp2=explode("!",$msg_info);
- $msg_info_nick=$tab_temp2[0]; //ServBoT
-
- // ServBoT!p@boss PRIVMSG #php
- $tab_temp3=explode(" ",$msg_info);
- $msg_info_host=$tab_temp3[0]; //ServBoT!p@boss
- $msg_info_type=$tab_temp3[1]; //PRIVMSG
- $msg_info_target=$tab_temp3[2]; //#php
-
- // ServBoT!p@boss PRIVMSG #php
- $tab_temp4=explode("!",$msg_info_host);
- $msg_info_host_auth=$tab_temp4[1]; //p@boss
-
-
- echo "$new <br>";
-
- if(eregi("PING",$tab_temp0[0])){
- fputs($fp,"PONG $serv\n");
- echo "<font color=red>PING? PONG!</font><br>";
- }
- //Si le pseudo exsiste deja
- if($msg_info_type=="433"){
- $randnick++;
- $mennick.=$randnick;
- fputs($fp,"nick $mennick\n");
- }
-
- if($msg_info_type=="JOIN"){
- if($msgj==1){fputs($fp,"PRIVMSG $msg_user_param0 : Bienvenu $msg_info_nick sur $msg_user_param0\n"); }
- }
-
- if($msg_info_type=="PRIVMSG"){
- $timz=time();
- if(eregi(".jall",$msg_user_param0)){
- fputs($fp,"join #php\n");
- fputs($fp,"join #programmation\n");
- fputs($fp,"join #testing\n");
- }
- elseif(eregi(".time",$msg_user_param0) && $timeflood<=$timz){
- fputs($fp,"PRIVMSG $msg_info_target :Current time : ".date("Y-m-d h:i:s")."\n");
- $timeflood=time()+5;
- }
- elseif(eregi(".nick",$msg_user_param0) && $authing==$msg_info_host_auth){
- fputs($fp,"nick $msg_user_param1\n");
- $mennick=$msg_user_param1;
- }
- elseif(eregi(".msgj",$msg_user_param0) && $authing==$msg_info_host_auth){
- if($msgj==1){$msgj=0;fputs($fp,"PRIVMSG $msg_info_target :MSG Join off\n");}else{$msgj=1;fputs($fp,"PRIVMSG $msg_info_target :MSG join on\n");}
- }
- elseif(eregi(".ilist",$msg_user_param0)){
- fputs($fp,"PRIVMSG $msg_info_target :[-AUTH-] $authing\n");
- }
- elseif(eregi(".kill",$msg_user_param0) && $authing==$msg_info_host_auth){
- fputs($fp,"quit $msg_user_param1 $msg_user_param2\n");
- }
- elseif(eregi(".kchan",$msg_user_param0) && $authing==$msg_info_host_auth){
- fputs($fp,"part $msg_user_param1 $msg_user_param2\n");
- }
- elseif(eregi(".up",$msg_user_param0) && $authing==$msg_info_host_auth){
- fputs($fp,"MODE $msg_info_target +o $msg_user_param1\n");
- }
- elseif(eregi(".v",$msg_user_param0) && $authing==$msg_info_host_auth){
- fputs($fp,"MODE $msg_info_target +v $msg_user_param1\n");
- }
- elseif(eregi(".dv",$msg_user_param0) && $authing==$msg_info_host_auth){
- fputs($fp,"MODE $msg_info_target -v $msg_user_param1\n");
- }
- elseif(eregi(".inv",$msg_user_param0) && $authing==$msg_info_host_auth){
- fputs($fp,"invite $msg_user_param1 $msg_user_param2\n");
- }
- elseif(eregi(".down",$msg_user_param0) && $authing==$msg_info_host_auth){
- fputs($fp,"MODE $msg_info_target -o $msg_user_param1\n");
- }
- elseif(eregi(".fuck",$msg_user_param0) && $authing==$msg_info_host_auth){
- fputs($fp,"KICK $msg_info_target $msg_user_param1 :$msg_user_param2\n");
- }
- elseif(eregi(".hop",$msg_user_param0) && $authing==$msg_info_host_auth){
- fputs($fp,"part $msg_info_target\n");
- sleep(1);
- fputs($fp,"join $msg_info_target\n");
- }
- elseif(eregi(".ds",$msg_user_param0) && $authing==$msg_info_host_auth){
- fputs($fp,"PRIVMSG $msg_user_param1 :$msg_user_param2\n");
- }
- elseif(eregi(".join",$msg_user_param0) && $authing==$msg_info_host_auth){
- fputs($fp,"join $msg_user_param1\n");
- }
- elseif(eregi(".f",$msg_user_param0) && $authing==$msg_info_host_auth){
- fputs($fp,"$msg_user_param1 $msg_user_param2\n");
- }
- elseif(eregi("auth",$msg_user_param0)){
- if(eregi("admin",$msg_user_param1) && eregi("pass",$msg_user_param2)){
- fputs($fp,"PRIVMSG $msg_info_target :GooD Password!!!!\n");
- $authing=$msg_info_host_auth;
- }else{
- fputs($fp,"PRIVMSG $msg_info_target :Bad Password!!!!\n");
- }
- $aution=1;
- }
- elseif(eregi(".deident",$msg_user_param0) && $authing==$msg_info_host_auth){
- $authing="none";
- }
- elseif(eregi(".targetpv",$msg_user_param0) && $authing==$msg_info_host_auth){
- $targpv="$msg_user_param1";
- }
- elseif(eregi(".targetsal",$msg_user_param0) && $authing==$msg_info_host_auth){
- $targsal="$msg_user_param1";
- }
- elseif(eregi(".untargetpv",$msg_user_param0) && $authing==$msg_info_host_auth){
- unset($targpv);
- }
- elseif(eregi(".untargetsal",$msg_user_param0) && $authing==$msg_info_host_auth){
- unset($targsal);
- }
- elseif(eregi(".killsock",$msg_user_param0)){
- fputs($fp,"quit $msg_user_param1 $msg_user_param2\n");
- }
-
- if(!eregi("#",$msg_info_target) && isset($targpv) && $aution!=1){
- fputs($fp,"PRIVMSG $targpv :$msg_info_nick > $msg_user \n");
- }
- if(eregi("#",$msg_info_target) && isset($targsal) && $aution!=1){
- fputs($fp,"PRIVMSG $targsal :$msg_info_nick > $msg_user \n");
- }
- }
-
- unset($aution);
- unset($tab_temp0);
- unset($tab_temp1);
- unset($tab_temp2);
- unset($tab_temp3);
- unset($msg_user_param2);
- }
- ?>
<?
set_time_limit(0);
$serv="chat1.voila.fr";
echo "connect to $serv...<br>";
$fp=fsockopen("$serv","6667");
echo "Ident...<br>";
fputs($fp,"user PsY4 UNIX ggreg4@laposte.net PHP_BOT\n");
$mennick="ev-a[PsY4_BoT_PhP]";
fputs($fp,"nick $mennick\n");
sleep(1);
while($new=fgets($fp,1024)){
$new = str_replace("\r", "", $new);
$new = str_replace("\n", "", $new);
// :ServBoT!p@boss PRIVMSG #php :.ds #kaya salut
$tab_temp0=explode(":",$new);
$msg_void=$tab_temp0[0]; //ping
$msg_info=$tab_temp0[1]; //ServBoT!p@boss PRIVMSG #php
$msg_user=$tab_temp0[2]; //.ds #kaya salut ca va
$msg_void1=$tab_temp0[3]; //.ds #kaya salut ca va
// .ds #kaya salut
$tab_temp1=explode(" ",$msg_user);
$msg_user_param0=$tab_temp1[0]; //.ds
$msg_user_param1=$tab_temp1[1]; //#kaya
$nbtt=count($tab_temp1);
$nbtt--;
for($i=2;$i<=$nbtt;$i++){
$msg_user_param2.=$tab_temp1[$i]." "; //salut ca va
}
// ServBoT!p@boss PRIVMSG #php
$tab_temp2=explode("!",$msg_info);
$msg_info_nick=$tab_temp2[0]; //ServBoT
// ServBoT!p@boss PRIVMSG #php
$tab_temp3=explode(" ",$msg_info);
$msg_info_host=$tab_temp3[0]; //ServBoT!p@boss
$msg_info_type=$tab_temp3[1]; //PRIVMSG
$msg_info_target=$tab_temp3[2]; //#php
// ServBoT!p@boss PRIVMSG #php
$tab_temp4=explode("!",$msg_info_host);
$msg_info_host_auth=$tab_temp4[1]; //p@boss
echo "$new <br>";
if(eregi("PING",$tab_temp0[0])){
fputs($fp,"PONG $serv\n");
echo "<font color=red>PING? PONG!</font><br>";
}
//Si le pseudo exsiste deja
if($msg_info_type=="433"){
$randnick++;
$mennick.=$randnick;
fputs($fp,"nick $mennick\n");
}
if($msg_info_type=="JOIN"){
if($msgj==1){fputs($fp,"PRIVMSG $msg_user_param0 : Bienvenu $msg_info_nick sur $msg_user_param0\n"); }
}
if($msg_info_type=="PRIVMSG"){
$timz=time();
if(eregi(".jall",$msg_user_param0)){
fputs($fp,"join #php\n");
fputs($fp,"join #programmation\n");
fputs($fp,"join #testing\n");
}
elseif(eregi(".time",$msg_user_param0) && $timeflood<=$timz){
fputs($fp,"PRIVMSG $msg_info_target :Current time : ".date("Y-m-d h:i:s")."\n");
$timeflood=time()+5;
}
elseif(eregi(".nick",$msg_user_param0) && $authing==$msg_info_host_auth){
fputs($fp,"nick $msg_user_param1\n");
$mennick=$msg_user_param1;
}
elseif(eregi(".msgj",$msg_user_param0) && $authing==$msg_info_host_auth){
if($msgj==1){$msgj=0;fputs($fp,"PRIVMSG $msg_info_target :MSG Join off\n");}else{$msgj=1;fputs($fp,"PRIVMSG $msg_info_target :MSG join on\n");}
}
elseif(eregi(".ilist",$msg_user_param0)){
fputs($fp,"PRIVMSG $msg_info_target :[-AUTH-] $authing\n");
}
elseif(eregi(".kill",$msg_user_param0) && $authing==$msg_info_host_auth){
fputs($fp,"quit $msg_user_param1 $msg_user_param2\n");
}
elseif(eregi(".kchan",$msg_user_param0) && $authing==$msg_info_host_auth){
fputs($fp,"part $msg_user_param1 $msg_user_param2\n");
}
elseif(eregi(".up",$msg_user_param0) && $authing==$msg_info_host_auth){
fputs($fp,"MODE $msg_info_target +o $msg_user_param1\n");
}
elseif(eregi(".v",$msg_user_param0) && $authing==$msg_info_host_auth){
fputs($fp,"MODE $msg_info_target +v $msg_user_param1\n");
}
elseif(eregi(".dv",$msg_user_param0) && $authing==$msg_info_host_auth){
fputs($fp,"MODE $msg_info_target -v $msg_user_param1\n");
}
elseif(eregi(".inv",$msg_user_param0) && $authing==$msg_info_host_auth){
fputs($fp,"invite $msg_user_param1 $msg_user_param2\n");
}
elseif(eregi(".down",$msg_user_param0) && $authing==$msg_info_host_auth){
fputs($fp,"MODE $msg_info_target -o $msg_user_param1\n");
}
elseif(eregi(".fuck",$msg_user_param0) && $authing==$msg_info_host_auth){
fputs($fp,"KICK $msg_info_target $msg_user_param1 :$msg_user_param2\n");
}
elseif(eregi(".hop",$msg_user_param0) && $authing==$msg_info_host_auth){
fputs($fp,"part $msg_info_target\n");
sleep(1);
fputs($fp,"join $msg_info_target\n");
}
elseif(eregi(".ds",$msg_user_param0) && $authing==$msg_info_host_auth){
fputs($fp,"PRIVMSG $msg_user_param1 :$msg_user_param2\n");
}
elseif(eregi(".join",$msg_user_param0) && $authing==$msg_info_host_auth){
fputs($fp,"join $msg_user_param1\n");
}
elseif(eregi(".f",$msg_user_param0) && $authing==$msg_info_host_auth){
fputs($fp,"$msg_user_param1 $msg_user_param2\n");
}
elseif(eregi("auth",$msg_user_param0)){
if(eregi("admin",$msg_user_param1) && eregi("pass",$msg_user_param2)){
fputs($fp,"PRIVMSG $msg_info_target :GooD Password!!!!\n");
$authing=$msg_info_host_auth;
}else{
fputs($fp,"PRIVMSG $msg_info_target :Bad Password!!!!\n");
}
$aution=1;
}
elseif(eregi(".deident",$msg_user_param0) && $authing==$msg_info_host_auth){
$authing="none";
}
elseif(eregi(".targetpv",$msg_user_param0) && $authing==$msg_info_host_auth){
$targpv="$msg_user_param1";
}
elseif(eregi(".targetsal",$msg_user_param0) && $authing==$msg_info_host_auth){
$targsal="$msg_user_param1";
}
elseif(eregi(".untargetpv",$msg_user_param0) && $authing==$msg_info_host_auth){
unset($targpv);
}
elseif(eregi(".untargetsal",$msg_user_param0) && $authing==$msg_info_host_auth){
unset($targsal);
}
elseif(eregi(".killsock",$msg_user_param0)){
fputs($fp,"quit $msg_user_param1 $msg_user_param2\n");
}
if(!eregi("#",$msg_info_target) && isset($targpv) && $aution!=1){
fputs($fp,"PRIVMSG $targpv :$msg_info_nick > $msg_user \n");
}
if(eregi("#",$msg_info_target) && isset($targsal) && $aution!=1){
fputs($fp,"PRIVMSG $targsal :$msg_info_nick > $msg_user \n");
}
}
unset($aution);
unset($tab_temp0);
unset($tab_temp1);
unset($tab_temp2);
unset($tab_temp3);
unset($msg_user_param2);
}
?>
Conclusion
Note: Si vos commandes ne marche pas c'est peut etre à cose de vos couleurs!
Sinon:
http://www.devforum.fr.fm (forum)
http://xtrem.tuxfamily.org/posesource.php (échanger vos sources sur irc)
http://www.liquid.fr.fm (site en construction)
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
socket connection irc help me plzz [ par yohannIII ]
bonjours je voudrais savoir comment me connecter a un server irc avec mot de pass requit et full name et adresse e-mail requis. merci d'avance. plus
Projet de bot irc [ par emilrom ]
Bonjour, Je cherche un bon codeur en tcl, C, php, python dans le but de crée un bot irc qui doit, par l'intermédiaire de socket, gérer
Les sockets php [ par PtitKev ]
Bonjour à toutes et a tous.Voila je test un bot socket en php. Je me suis rendu compte que les variables étaient propre a une page donc
socket [ par LaTatadu91 ]
salut,voila j'essaie de faire communiquer deux programmes un en PHP et l'autre en C et j'utilise pr cela les sockets de PHP avec le protocole TCP/IP..
socket non bloking [ par achil_ff ]
slt tt le monde svp pouvez vous m expliquer le principe des sockets non blokant bref je doi realiser une apllication PHP ki scanne les ports 25 ouvert
socket client (php) vers serveur (c++) [ par suleyman ]
bonjour, je suis debutant, je nai jamais programmer une socket et jaimerai avoir le code source ainsi que les commentaires dune socket client et serve
[Debutant] récupérer l'entête d'une page html [ par maniolar ]
Bonjour à tous voila j'aimerais realiser un outils comme celui-cihttp://www.webrankinfo.com/outils/header.php. Je voudrais juste récupé
irc : recuperation des user sur un chan [ par eragon77 ]
bonjour, voila tout est en dans le titre je cherche un script php en socket ou autre qui permet de recuperer les users d'un chan irc qui le marque su
sockets/php [ par agoumi ]
bonjour a tous! bon j'ai réaliser une socket serveur en php sous linux,mais lors de l'execution j'ai l'erreur suivant: Fatal error: Call to undefined
Chat en php [ par Ramboul ]
Salut,Je cherche un tchat en php pour mon site car j'ai déja un tchat mais il requiert d'avoir l'applet java.J'aimerai qu'il redeirige vers irc.quaken
|
Derniers Blogs
MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|