BOT IRC BASIQUE

cs_lowan Messages postés 19 Date d'inscription mercredi 17 avril 2002 Statut Membre Dernière intervention 25 novembre 2005 - 9 sept. 2005 à 00:23
yohan49 Messages postés 380 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 août 2011 - 10 nov. 2006 à 16:55
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/33716-bot-irc-basique

yohan49 Messages postés 380 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 août 2011 7
10 nov. 2006 à 16:55
pour le probleme de connexion , faut pas preciser la provenance si on n'est pas un bot linké

donc USER pseudo 0 * :real name\r\n

:)
cs_Tidam Messages postés 124 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 février 2006 2
27 août 2006 à 17:15
Ca veut dire qu'il ne faut pas oublier de linker la lib, ce que j'ai copié c'est la methode pour dev-cpp mais pour vc++ je crois que c'est : #pragma comment(lib, "ws2_32.lib") a rajouter dans le header.
tagboys Messages postés 42 Date d'inscription lundi 28 avril 2003 Statut Membre Dernière intervention 28 mars 2014
27 août 2006 à 04:25
je voie pas lùtiliter de recopier cela si jùtiliserait belle et bien dev jorait pas poser une tel question jutilise plutot vc++ a moin que jme trompe dev et vc++ on pas les meme options :) allors super ton copie coller maintenant je vais pouvoir relire a partir dèn bas ;)
cs_Tidam Messages postés 124 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 février 2006 2
25 août 2006 à 20:00
{Quote}Pour que ce code fonctionne il suffit d'ajouter un lien vers la librairie winsock (-lwsock32), pour les débutant (plus que moi), utilisez dev-c++ 4.9.9.2, allez dans "option du compilateur", cochez "ajouter ces commandes lors de l'appel a l'éditeur de liens" puis mettez dans la zone de texte : -lwsock32 .{Quote}
:*
tagboys Messages postés 42 Date d'inscription lundi 28 avril 2003 Statut Membre Dernière intervention 28 mars 2014
18 août 2006 à 19:15
bah moi a la compil 0 erreur mais au build :

test4.obj : error LNK2001: unresolved external symbol __imp__WSACleanup@0
test4.obj : error LNK2001: unresolved external symbol __imp__closesocket@4
test4.obj : error LNK2001: unresolved external symbol __imp__recv@16
test4.obj : error LNK2001: unresolved external symbol __imp__send@16
test4.obj : error LNK2001: unresolved external symbol __imp__connect@12
test4.obj : error LNK2001: unresolved external symbol __imp__htons@4
test4.obj : error LNK2001: unresolved external symbol __imp__inet_addr@4
test4.obj : error LNK2001: unresolved external symbol __imp__socket@12
test4.obj : error LNK2001: unresolved external symbol __imp__WSAStartup@8
Debug/test4.exe : fatal error LNK1120: 9 unresolved externals
Error executing link.exe.

test4.exe - 10 error(s), 0 warning(s)
remram44 Messages postés 15 Date d'inscription lundi 4 août 2003 Statut Membre Dernière intervention 8 juin 2007
7 oct. 2005 à 20:45
Moi je fais des recv() avec une taille de 1 octet et je regarde si c'est un \n. Si oui je traite le contenu du buffer et je le vide.

char buffer[256];
int pos=0;
while(true)
{
recv(socket,&buffer[pos],1,0);
pos+=1;
buffer[pos]='\0';
if(buffer[pos-1]=='\n')
{
// Traitement
pos=0;
buffer[0]='\0';
}
}
PtitKev Messages postés 18 Date d'inscription jeudi 27 mars 2003 Statut Membre Dernière intervention 7 octobre 2005
7 oct. 2005 à 16:07
Kitu2 le prob vien du fait que ta des chr \r \n et que plusieurs serv envoient plusieurs lignes d'un seul coup.

Le plus simple pour tester ca c d'utiliser le debug mirc ;) en sachant que mirc lui découpe auto les \r\n et traite indépendament chaque ligne (ce qui est pas tjrs pratique).

En gros, tu dois découper chaque ligne reçue par \r ou \n et testet chaque bloque : j'y connais pas grand chose au C mais j'ai eu ce prob en python ^^. Fo voir, si comme en perl, ya une option pour découper auto chaque ligne au lieu de traiter chaque packet comme une ligne.

Je code mes bots IRC en php mais je pense que je vais tester en C avec mysql pour voir ce que ca donne.

Bonne continuation et @+

PS: Voila c dla merde : ca a preque plus rien a voir avec l'IRC, le seul raport, c le chat : le protocol a été modif de partout :p
remram44 Messages postés 15 Date d'inscription lundi 4 août 2003 Statut Membre Dernière intervention 8 juin 2007
24 sept. 2005 à 22:00
C'est quand même vachement basique comme code... Mais ça montre bien comment se connecter à l'IRC.
Kitu2 Messages postés 1 Date d'inscription samedi 3 septembre 2005 Statut Membre Dernière intervention 12 septembre 2005
12 sept. 2005 à 14:49
c'était pas ca le pb, j'avais un problème de réponse aux pings ... selon les serveurs cela diffère ... (Je sais encore changer une ip et un port !!!) ce soir je vous envoi ma nouvelle source qui fonctionne bien mieux :) !
cs_Tidam Messages postés 124 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 février 2006 2
10 sept. 2005 à 10:39
Non en faite, il faut que tu renvois un "USER DiCoToRuS free.fr chat9.x-echo.com :DiCoToRuS\r\n" a un certain moment

exemple de mon code:
if ( !strcmp(IRC_gettok(temp,2,32),"AUTH") )
IRC_send(sock,"USER testbot tbot tbot :By Tidam\n");

Il peut aussi y avoir le probleme de l'email et du fullname, qui doivent etre identiques sur certains serveur (ex: si le fullname est 'Tidam' l'adresse doit etre 'Tidam@machin.truc')

Enfin bref si t'as des problemes demande moi !
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
9 sept. 2005 à 09:57
Si tu veux pouvoir te connecter à d'autre serveur irc, tu n'as qu'a changer l'IP.
A la place de 195.101.94.173, mets 62.23.9.122, tu veras que tu te connecteras a un autre serveur IRC.
Sinon pense bien a vérifier les ports aussi, le plus souvent utilisé étant le 6667.
cs_lowan Messages postés 19 Date d'inscription mercredi 17 avril 2002 Statut Membre Dernière intervention 25 novembre 2005
9 sept. 2005 à 00:23
tete parce que l'ip est 195.101.94.173 nan ? :D
Rejoignez-nous