Guide d'utilisation de l'IRC

Guide d'utilisation de l'IRC

Principes de l'IRC

Se connecter à IRC

Liste des serveurs les plus connus

Salons fréquentés

Premiers pas

Réseaux, serveurs, canaux

Grades

Principe d'accès

Modération et gestion de ChanServ

Éjection

Bannissements

Jokers et WildCards

Les VHosts

Les alias

Fabriquer un bot IRC

Requêtes basiques avec IRC

Programmation d'un bot avec Python grâce à la bibliothèque IRClib

Programmation d'un bot avec perl

Voir aussi

Index des modes et commandes

Modes de salon

Modes d'utilisateurs

 

Principes de l'IRC

IRC, acronyme de Internet Relay Chat (en français, « discussion relayée par Internet ») est un protocole? qui permet la communication instantanée entre des client?s et des serveur?s connectés les uns aux autres. Il est concu à l'origine pour permettre des téléconférences entre interlocuteurs éloignés.

Conçu fin août 1988, il a été décrit initialement dans la RFC 1459 par Jarkko Oikarinen (surnommé « WiZ ») et D. Reed, puis révisé dans les RFC 2810 à 2813. IRC fut créé pour remplacer un programme appelé MUT (MultiUser talk) sur un BBS? finlandais (OuluBox). Oikarinen s'est inspiré du Bitnet Relay Chat du réseau Bitnet.

Le protocole de communication décrit un réseau informatique formé de plusieurs serveurs connectés dans lequel les clients communiquent généralement par le biais du serveur (qui relayera éventuellement le message au reste du réseau). Il est également possible de connecter deux clients directement pour une conversation privée ou un transfert de fichier, on parle alors de DCC?. Ce protocole étant public, des clients existent pour de nombreux systèmes d'exploitations, de même que les serveurs IRC, aussi désignés par le terme IRCD qui signifie Internet Relay Chat Daemon.

Il existe différents réseaux, dont les plus connus sont IRCnet?, EFnet?, DalNET?, Undernet?, Freenode?. Ils sont le plus souvent libres d'utilisation et gratuits. QuakeNet? est le plus grand réseau avec 200 000 clients.

Avec l'arrivée des gros fournisseurs de contenu un peu avant 2000, le succès d'IRC a été quelque peu diminué par l'arrivée des messageries instantanées. Ces réseaux restent néanmoins très utilisés par ceux qui veulent discuter sans passer par un programme client propriétaire ou n'offrant pas l'intéractivité sous forme de canaux, permettant ainsi de rejoindre des milliers d'usagers.

Un serveur IRC est normalement géré par un IrcOp?, contraction d'origine anglophone de IRC Operator ou opérateur d'IRC.

 

Se connecter à IRC

Un réseau irc est constitué d'au moins un serveur. Lorsqu'il y a plus d'un serveur, il se forme une structure où chaque serveur est lié aux autres et où les paquets circulent par le chemin le plus rapide. Les paquets en question circulent en suivant le protocole irc ; de la même manière que les pages web sont généralement communiqués avec le protocole http. Se connecter à l'irc revient donc à se connecter à l'un de ces serveurs, ce qui nécessite des programmes taillés sur mesure.

Pour communiquer en http on utilise un programme de la famille des navigateurs internet tel que firefox ou internet explorer. Pour l'irc on utilise des programmes de la famille des « clients irc ». Seul Opera gère le protocole irc en natif pour le moment. Sur firefox vous pouvez utiliser le greffon Chatzilla. Avec internet explorer (ou windows explorer) rien n'est prévu et vous devrez obligatoirement utiliser un programme externe dédié au protocole tel que mIRC ou XChat. Pour Macintosh vous trouverez une liste de client sur irchelp.

Avec firefox ou opera il suffit d'entrer irc://freenode par exemple dans l'url de son navigateur pour se connecter au serveur en question, sinon il faut se connecter au serveur manuellement, une fois le client irc démarré avec la commande /server nomDuServeur par exemple.

Une fois connecté à un serveur il ne reste plus qu'à accéder à l'un des nombreux salons (channel ou chan en anglais) qu'il est censé accueillir. Si vous connaissez son nom il vous suffit d'entrer /join #nomDuSalon (ne pas oublier de précéder le nom du salon par un dièze #, irc distingue les salons des utilisateurs par ce moyen, c'est à dire que pour lui #toto est le salon appellé toto et toto est la personne dont le pseudonyme est toto). Si on ne connait pas le nom du salon il est possible de lister les salons hébergés sur le réseau avec la commande /list et des jokers : « * ». Par exemple /list #*fr* vous donnera la liste de tous les salons francophones (du moins ceux contenant « fr » dans leur nom).

Liste des serveurs les plus connus

freenode

Un serveur dédié au monde du libre

quakenet

Le plus gros. on y discute de tout

poursuivre la liste

Salons fréquentés

Sur freenode on trouvera les salons de référence pour les langages de programmation, généralement en anglais :

Essayez généralement d'ajouter « -fr » après ou « fr. » avant le nom du langage ou du thème pour avoir l'équivalent francophone.

Freenode héberge également les salons des projets wikimedia. Pour le salon germanophone de wikipedia on se connectera à wikipedia-de, pour le salon francophone de wikilivres, on se connectera à wikibooks-fr, et ainsi de suite.

On trouvera des réseaux sociaux plutôt sur les serveurs de irc.quakenet.org, irc.epiknet.org (exclusivement francophone), etc. Une recherche sur google commençant par « serveur irc » devrait vous aider à trouver votre bonheur. Par exemple le salon de bashfr, le célèbre recueil de citations provenant d'irc se trouve à irc://irc.langochat.net/bashfr

 

Premiers pas

Réseaux, serveurs, canaux

Grades

En IRC, il existe plusieurs grades principaux :

Principe d'accès

La plupart des réseaux IRC permettent l'enregistrement d'un canal de discussion pour les utilisateurs. Le nombre de canaux pouvant être enregistré par un seul utilisateur peut être limité, ou non, sur le réseau. Lorsqu'un canal est enregistré, celui qui à enregistré le canal devient alors Founder. Celui ci à un droit total sur le canal. Il peut ensuite ajouter des accès afin de permettre à d'autres de modérer et s'occuper du canal en question. un accès est un chiffre entre 0 et 9999 qui permet de définir qui est prédominant sur un canal par rapport aux autres utilisateurs. Par exemple sous l'IRCd Unreal IRCd, par défaut la gestion des accès est la suivante :

Le Founder/Owner n'a pas besoin d'un accès en particulier, le robot de service le reconnait déjà comme tout puissant et n'a donc pas besoin de lui définir un accès pour comparer avec les autres utilisateurs. Plus l'accès est haut plus cela est avantageux. Par exemple un utilisateur avec un accès de 499 ne pourra pas kicker un utilisateur ayant un accès de 500 ou plus. Cela permet donc de créer une hiérarchie.

Mais cela ne s'arrête pas là. les "levels" sont remodifiables, c'est à dire que l'accès aux options, aux modes et à d'autres caractéristiques peuvent être redéfinis. Par exemple il est possible de faire un canal où n'importe quel utilisateur se voit attribué le mode +o dès son arrivée.

Un utilisateur voulant bénéficier de l'accès qu'il possède sur un salon doit s'identifier (d'abord enregistrer son pseudonyme).

Enfin, il existe la possibilité de mettre des accès négatifs sur certains utilisateurs et de les interdire d'accès au canal de cette manière.

 

Modération et gestion de ChanServ

Éjection

Afin d'éjecter (kick) un utilisateur, il faut taper :


Remarque :

 

Bannissements

Bannir quelqu'un sert à l'empêcher de joindre un salon ou, dans le cas de quelqu'un étant déjà sur le salon, de l'empêcher de parler (et de revenir s'il quitte le salon).


Pour bannir quelqu'un, si la personne a assez de pouvoir (être au moins half-op), il lui suffit d’écrire :


Remarques :

 

Jokers et WildCards

Les joker, symbolisés par le caractère "*" signifie une chaîne de caractères facultative et variable. Ainsi, "nick*" signifie aussi bien "nick", "nickabcd", "nick1234" ou "nickabcd1234..".

Ce joker peut être utilisé dans les bans, par exemple, dans le but de bannir un nickname, un ident ou un host en particulier, renseignés partiellement ou entièrement, le reste pouvant varier :


De la même manière, les wilcard, symbolisés par le caractère "?" signifie un caractère facultatif et variable. Ainsi, "nick?" signifie aussi bien "nick", "nick1" ou "nickZ" par exemple.

 

Les VHosts

Le terme VHost désigne les hostname virtuels (Virtual Hostname). Ils permettent, à l'origine, de masquer l'hostname d'un utilisateur (utile dans le cas d'un serveur ne cryptant pas automatiquement les IPs avec le usermode +x). Ils sont maintenant principalement utilisés dans un but esthétique. Par défaut, seuls les IRCOp ou LocOp (Globalement les personnes qui gèrent le réseau) peuvent attribuer un Vhost à un utilisateur. Le service utilisé est nommé "HostServ" et s'utilise via la commande "/msg hostserv [action]". Les actions disponibles :

Pour l'utilisateur :

Pour les ServicesOpérateurs :

Remarques :

 

Les alias

Afin de raccourcir les commandes, la plupart des réseaux ont opté pour des alias, c'est-à-dire des sortes de raccourcis, pour communiquer avec les services :

Les commandes s'effectuent ainsi de la même manière, par exemple la commande "/msg hostserv on" fonctionnera également avec la commande "/hs on"

 

Fabriquer un bot IRC

On nomme Bot IRC un programme destiné à interagir avec les autres utilisateurs présents sur un canal IRC, et cela de façon automatique. Il est vu par les autres utilisateurs comme un utilisateur normal.

Les tâches pouvant être accomplies automatiquement sont multiples : filtrage de certains mots pour éviter les insultes ou affichage d'un message de bienvenue aux utilisateurs venant de se connecter. Le bot étant programmable, les possibilités sont multiples et ne dépendent que des intentions du créateur.

Les bots IRC peuvent être programmés dans un grand nombre de langage puisque IRC est basé sur un protocole. Il est toujours possible de construire et d'envoyer des sockets manuellement, opération que presque tous les langages peuvent effectuer. Cependant, certains sont mieux adaptés et présentent des librairies spécifiques permettant de faciliter grandement la conception. De plus, certains logiciels IRC comme Xchat permettent la programmation très simple de bots grâce à l'installation de plug-ins.

Requêtes basiques avec IRC

Liste de toutes les commandes, voir la RFC : http://abcdrfc.free.fr/rfc-vf/rfc1459.html (en français)

Exemple d'utilisation basique avec Telnet : Vous pouvez taper les commandes suivantes dans une console supportant Telnet (remplacer irc_server par le nom ou l'adresse du serveur sur lequel vous souhaitez vous connecter par exemple 195.50.191.14)

telnet <irc_serveur> <port (6664 a 6667 généralement)>

--> Affichage d'informations de connexion

NICK <votre_surnom>

USER <nom_utilisateur> <nom_serveur> <nom_serveur> <vrai_nom>

--> Affichage d'information sur le serveur et ses règles

JOIN #<canal>

Vous êtes maintenant connecté sur le serveur et avez rejoint un canal

Pour de l'aide, taper HelpServ suivit du nom de la commande

Programmation d'un bot avec Python grâce à la bibliothèque IRClib

import irclib

 

#Informations de connexion

 

network = 'irc.freenode.net'

 

port = 6667

 

channel = '#irclib'

 

nick = 'PyTest'

 

name = 'Python Test'

 

#Creer un Objet IRC

 

irc = irclib.IRC()

 

#Créer un objet serveur, puis se connecter et rejoindre le canal

 

server = irc.server()

 

server.connect (network, port, nick, ircname = name)

 

server.join (channel)

#Sauter à une boucle infinie

 

irc.process_forever()

Programmation d'un bot avec perl

Logo travaux orange.svgLogo travaux orange.svg Cette section est vide, pas assez détaillée ou incomplète.

Voir aussi

 

Index des modes et commandes


À noter que les modes sont sensibles à la casse.

 

Modes de salon

Les salons peuvent avoir différents modes (ou aucun). Ces modes sont des propriétés du salon. Voilà tous les modes que l'on peut appliquer sur un salon, via la commande /mode #channel +/-[mode] :

[h] signifie que les half-ops et ops peuvent mettre ce mode et [o] signifie que les ops seulement peuvent mettre ce mode.

Modes d'utilisateurs

Voilà la liste des UModes (= modes utilisateurs) applicable grâce à la commande /mode <utilisateur> +/-[mode] :