les commandes a envoyer pour faire un client IRC? - Programmation
Marsh Posté le 31-07-2002 à 12:27:24
Faut lire la RFC
Sinon y a plein de site mais si tu veux implémenter le protocole IRC tu dois implémenter le RFC (voir www.ietf.org/rfc)
Marsh Posté le 31-07-2002 à 12:30:58
DarkLord a écrit a écrit : Faut lire la RFC Sinon y a plein de site mais si tu veux implémenter le protocole IRC tu dois implémenter le RFC (voir www.ietf.org/rfc) |
ok merci je ssuis en train de lire la RFC
Marsh Posté le 31-07-2002 à 12:34:33
gogoprog a écrit a écrit : voila je voudrais faire un client irc, donc pour connaitre les commandes, jai commencé par faire un faux server et jai trouve cette commande ci a envoyer : NICK monnick USER myuser "skynet.be" "server" :taist donc je l'envoie au serveur irc, mais il se passe plus rien apres... aidez moi... |
D'abord, tu devrais lire la RFC 1459 relative au protocole IRC. Elle est disponible en français sur http://abcdrfc.free.fr/rfc-vf/rfc1459.html et en anglais sur http://abcdrfc.free.fr/rfc-vo/rfc1459.txt (quelques fois, le sens de certains mots est plus évident en anglais ..). Ensuite, je t'invite à consulter le source de quelques clients IRC libres, comme irssi (excellent client IRC, http://irssi.org), ou le très petit tinyirc, dont le source est disponible sur http://ftp.fr.debian.org/debian/po [...] rig.tar.gz
Enfin, à faire avant de se lancer dans l'aventure absolument, tenter de passer quelques jours à faire de l'IRC uniquement en telnet. Par exemple:
mmenal@woof:~$ nc6 -6 calvino.openprojects.net 6667
NOTICE AUTH :*** Looking up your hostname...
NOTICE AUTH :*** Found your hostname, welcome back
NOTICE AUTH :*** Checking ident
NOTICE AUTH :*** No identd (auth) response
NICK mmenal
USER mmenal host bouh "manuel menal"
[je te passe le motd]
JOIN #ipv6-fr
:mmenal!~mmenal@mmenal.tb.ipv6-fr.net JOIN :#ipv6-fr
:calvino.openprojects.net 332 mmenal #ipv6-fr :Association IPv6-FR | English -> #openipv6 | tunnels: ipmaster@ipv6-fr.org | ftp://ftp.openipv6.com
:calvino.openprojects.net 333 mmenal #ipv6-fr NicoWork 1026670434
:calvino.openprojects.net 353 mmenal = #ipv6-fr :mmenal manuel krion Xag @ChanServ woof NicoWork syncros_ Syncr0s
:calvino.openprojects.net 366 mmenal #ipv6-fr :End of /NAMES list.
PRIVMSG #ipv6-fr hop
:manuel!~mmenal@mmenal.tb.ipv6-fr.net PRIVMSG #ipv6-fr :bouh
QUIT
ERROR :Closing Link: mmenal (Client Quit)
Avec un peu de ça, tu maitriseras beaucoup mieux le protocole IRC, et sera en très bonne condition pour faire ton client IRC.
Et pourquoi faire un "faux serveur" ? qu'entends-tu par là ?
Marsh Posté le 31-07-2002 à 12:39:19
mmenal a écrit a écrit : D'abord, tu devrais lire la RFC 1459 relative au protocole IRC. Elle est disponible en français sur http://abcdrfc.free.fr/rfc-vf/rfc1459.html et en anglais sur http://abcdrfc.free.fr/rfc-vo/rfc1459.txt (quelques fois, le sens de certains mots est plus évident en anglais ..). Ensuite, je t'invite à consulter le source de quelques clients IRC libres, comme irssi (excellent client IRC, http://irssi.org), ou le très petit tinyirc, dont le source est disponible sur http://ftp.fr.debian.org/debian/po [...] rig.tar.gz Enfin, à faire avant de se lancer dans l'aventure absolument, tenter de passer quelques jours à faire de l'IRC uniquement en telnet. Par exemple: mmenal@woof:~$ nc6 -6 calvino.openprojects.net 6667 NOTICE AUTH :*** Looking up your hostname... NOTICE AUTH :*** Found your hostname, welcome back NOTICE AUTH :*** Checking ident NOTICE AUTH :*** No identd (auth) response NICK mmenal USER mmenal host bouh "manuel menal" [je te passe le motd] JOIN #ipv6-fr :mmenal!~mmenal@mmenal.tb.ipv6-fr.net JOIN :#ipv6-fr :calvino.openprojects.net 332 mmenal #ipv6-fr :Association IPv6-FR | English -> #openipv6 | tunnels: ipmaster@ipv6-fr.org | ftp://ftp.openipv6.com :calvino.openprojects.net 333 mmenal #ipv6-fr NicoWork 1026670434 :calvino.openprojects.net 353 mmenal = #ipv6-fr :mmenal manuel krion Xag @ChanServ woof NicoWork syncros_ Syncr0s :calvino.openprojects.net 366 mmenal #ipv6-fr :End of /NAMES list. PRIVMSG #ipv6-fr hop :manuel!~mmenal@mmenal.tb.ipv6-fr.net PRIVMSG #ipv6-fr :bouh QUIT ERROR :Closing Link: mmenal (Client Quit) Avec un peu de ça, tu maitriseras beaucoup mieux le protocole IRC, et sera en très bonne condition pour faire ton client IRC. Et pourquoi faire un "faux serveur" ? qu'entends-tu par là ? |
merci pour ton aide, c c que je vais faire
javais fait un faux server, cad:
jai cree une connexion ouverte sur le port 6667
et ensuite avec mirc je me suis connecte a moi meme.
ainsi jai vu les commandes, mais c t pa tres clair
Marsh Posté le 31-07-2002 à 13:03:53
ya un probleme
jessaie de me connecter a quakenet
je fais nick, user et join
mais il se passe rien
Marsh Posté le 31-07-2002 à 13:27:10
comment tu fais mmenal?
je narrive meme pas a avoir le motd...
skoi le probleme?
Marsh Posté le 31-07-2002 à 13:37:33
gogoprog a écrit a écrit : comment tu fais mmenal? je narrive meme pas a avoir le motd... skoi le probleme? |
Évidemment Quakenet est (encore) un cas à part (et n'a pas de serveur avec support IPv6 !@#$). Voici un petit log:
mmenal@woof:~$ nc euroserv.fr.quakenet.org 6667
NOTICE AUTH :*** Looking up your hostname
NOTICE AUTH :*** Found your hostname, cached
NOTICE AUTH :*** Checking Ident
NOTICE AUTH :*** No ident response
USER mmenal a b "Manuel Menal"
NICK mmenal
PING :400267380
PONG 400267380
[je te passe le flood]
:ign.ie.quakenet.org NOTICE mmenal :on 1 ca 1(4) ft 20(20) tr
Et voilà. En effet, Quakenet envoit un PING à chaque client lors de la connexion, auquel tu es censé répondre PONG. Si tu testes une autre commande, tu as d'ailleurs un message du genre:
:ign.ie.quakenet.org 513 mmenal :To connect, type /QUOTE PONG 2058200092
Voilà ce à quoi peut servir d'utiliser telnet/nc pour se connecter pendant quelques temps. :)
Marsh Posté le 31-07-2002 à 13:47:17
merci ok
et aussi chui bete mon firewall blokait une bonne partie
Marsh Posté le 31-07-2002 à 17:06:38
jai un probleme, j'arrive a faire la connexion avec telnet, et je comprend maintenant comment cela fonctionne.
mais le probleme, c que je n'arrive pas a eteblir la connexion avec Visual Basic, pourtant je fais le meme !
dans vb, je n'obtiens pas le PING avec numero
il me dit PING TIMEOUT
Marsh Posté le 31-07-2002 à 18:13:52
gogoprog a écrit a écrit : jai un probleme, j'arrive a faire la connexion avec telnet, et je comprend maintenant comment cela fonctionne. mais le probleme, c que je n'arrive pas a eteblir la connexion avec Visual Basic, pourtant je fais le meme ! dans vb, je n'obtiens pas le PING avec numero il me dit PING TIMEOUT :/ |
Désolé, je ne connais rien à Visual Basic. En revanche, pour ce genre de choses, et pour tout le reste, je te conseillerais un vrai langage. Le C me parait très adapté pour comprendre vraiment le fonctionnement d'un client IRC, des sockets. Et utiliser l'API Berkeley pour les sockets est nécessaire en tous cas, donc autant s'y mettre.
Marsh Posté le 31-07-2002 à 19:45:24
Entierement d'accord, le VB pour un client IRC c'est vraiement pas ca, j'avais commencé a en faire dessus, mais c'est trop lourd a la fin. J'ai recommencé en C et depuis tout va bien (quoiqu'il est a peine commencé
Pour le timeout, il faut, comme on te l'a dit, répondre par un pong. Il faut donc que tu envoyes ton message qui doit etre proprement formaté au SERVER (attention a bien discocier les message clients/serveurs).
Marsh Posté le 31-07-2002 à 21:08:50
mmenal a écrit a écrit : Désolé, je ne connais rien à Visual Basic. En revanche, pour ce genre de choses, et pour tout le reste, je te conseillerais un vrai langage. Le C me parait très adapté pour comprendre vraiment le fonctionnement d'un client IRC, des sockets. Et utiliser l'API Berkeley pour les sockets est nécessaire en tous cas, donc autant s'y mettre. |
Pour le réseau, c'est vrai que le C est pas mal, mais il y a une phase d'initialisation assez pénible.
Des langages plus haut niveau comme le python sont quand même plus adaptés, tu fais la connexion en une ligne et tu as un FD comme en C, avec les mêmes fonctions disponibles dessus.
Marsh Posté le 01-08-2002 à 00:00:20
Jar Jar a écrit a écrit : Pour le réseau, c'est vrai que le C est pas mal, mais il y a une phase d'initialisation assez pénible. Des langages plus haut niveau comme le python sont quand même plus adaptés, tu fais la connexion en une ligne et tu as un FD comme en C, avec les mêmes fonctions disponibles dessus. |
En fait, je conseillais ça sachant que visiblement il n'avait jamais fait de socket avec des langages relativement bas niveau (je suis conscient que le C est un langage de haut niveau, oui). Ensuite, selon les cas, selon la complexité, selon les goûts, le cahier des charges, .., le choix du langage devra se faire *réellement*. Parfois, des langages "très" haut niveau seront adaptés, parfois moins .. À chacun de se faire sa propre expérience et de juger de ses besoins. Moi, je le verrais bien en elisp ;P
Marsh Posté le 01-08-2002 à 00:13:24
mmenal a écrit a écrit : Moi, je le verrais bien en elisp ;P |
Y en a déjà un, pourquoi réinventer la roue ?
Marsh Posté le 01-08-2002 à 10:35:16
UTF-8 a écrit a écrit : gogoprog > va sur ce site : www.salemioche.com |
harkonnen c'est fini avec tes clones oui?
Marsh Posté le 01-08-2002 à 10:36:14
DarkLord a écrit a écrit : harkonnen c'est fini avec tes clones oui? |
je me suis encore planté de browser, et j'avais meme pas remarqué en plus
Marsh Posté le 31-07-2002 à 12:19:40
voila je voudrais faire un client irc, donc pour connaitre les commandes, jai commencé par faire un faux server et jai trouve cette commande ci a envoyer :
NICK monnick
USER myuser "skynet.be" "server" :taist
donc je l'envoie au serveur irc, mais il se passe plus rien apres...
aidez moi...
---------------
++