doku:αΩ « Wikidd »

des 𝞹-pes, du sudo maso & la main sur l'hacker !

User Tools

Site Tools


prog:web:irc-start

IRC : Internet Relay Chat

Un moyen qu'il est chouette pour communiquer. Ici je vais décrire succinctement comment accéder au réseau IRC à la main mais tout ceci n'est pas utile lorsque vous utilisez un client IRC. J'utilise personnellement WeeChat car il me permet une configuration assez précise du client et de son environnement.

Client Weechat

Avec son interface en console, il permet de se connecter rapidement en quelques commandes. Et bien plus, la doc est excellente !

Installation pour linux debian-like :

$ sudo apt-get install weechat

Une fois installé, on le lance simplement avec la commande du même nom :

$ weechat

Panneau "core" de weechat (démarrage classique)

Le mieux étant de démarrer via ce guide.


Connexion au client (core)

Lors d'un démarrage classique, le panneau “coeur”1) s'ouvre et vous donne la main. Ici j'ai tapé /help qui affiche les commandes disponibles.

On peut voir que le menu est découpé en sections, par exemple :

20:28:29  weechat     | [python]
20:28:29  weechat     |   python
20:28:29  weechat     | 
20:28:29  weechat     | [irc]
20:28:29  weechat     |   admin       dehalfop    join        motd        pong        sanick      time        wallops
20:28:29  weechat     |   allchan     deop        kick        msg         query       sapart      topic       who
20:28:29  weechat     |   allpv       devoice     kickban     names       quiet       saquit      trace       whois
20:28:29  weechat     |   allserv     die         kill        nick        quote       server      unban       whowas

Ces sections sont les modules disponibles par le client (Weechat permet d'intégrer beaucoup d'outils annexes !) et vous permet de vous y retrouver un peu plus. Typiquement, le module désigné par irc est une base commune à la plupart des clients IRC.

Le client est lancé et on peut commencer à regarder les serveurs. Par exemple via la commande /help server qui liste toutes les actions disponibles à partir de la commande /server.

/help server
[...]
20:39:15  weechat     |     list : afficher les serveurs (sans paramètre, cette liste est affichée)
20:39:15  weechat     | listfull : afficher les serveurs avec de l'info détaillée pour chaque
20:39:15  weechat     |      add : ajouter un nouveau serveur
[...]
20:43:32  weechat     | Exemples :
20:43:32  weechat     |   /server listfull
20:43:32  weechat     |   /server add freenode chat.freenode.net
20:43:32  weechat     |   /server add freenode chat.freenode.net/6697 -ssl -autoconnect
20:43:32  weechat     |   /server add chatspike irc.chatspike.net/6667,irc.duckspike.net/6667
[...]

L'extrait nous montre qu'on peut appeler les commandes /server list (obtenir la liste de vos serveurs enregistrés) et aussi /server add pour ajouter un nouveau serveur.

Donc les commandes suivantes sont valides pour ajouter un serveur :

/server add freenode chat.freenode.net
/server add freenode chat.freenode.net -autoconnect
/server add freenode chat.freenode.net/6697 -ssl -autoconnect
/server add geeknode irc6.geeknode.org -autoconnect
A ce stade, les serveurs sont disponibles pour se connecter (mais il ne sont pas enregistrés, n'oubliez pas de /save votre configuration avant de /quit ;-)).

Pour supprimer un serveur enregistré : /server del <name>.


Connexion aux serveurs

Pour se connecter, on utilise la commande /connect :

/connect freenode

La connexion au serveur créé un nouveau tampon2) au nom du serveur et vous y affiche ces échanges.

Connexion aux salons

Une fois connecté au serveur on peut rejoindre les salons avec la commande /join :

/join #laquadrature

Si le salon existe sur le serveur, un nouvel onglet s'ouvre et vous vous retrouvez dessus (dedans ?).


Échange avec le serveur

Via la commande /msg nickserv généralement.

Identité

Vous êtes identifié par un nickname qui peut être associé à un compte (une adresse email) afin de s'authentifier et de conserver son surnom.

Pour modifier le surnom, on utilise la commande /nick :

/nick misseeks

Divers

Commandes

/server add geeknode irc.geeknode.org/6697 -ssl -autoconnect

/server del geeknode

/connect geeknode

/buffer weechat

/disconnect
/disconnect geeknode
 
/close
/close geeknode

Filtrer l'affichage

Pour filtrer l'affichage des indicateurs de connexions / déconnexions des utilisateurs sur le salon en cours :

/set irc.look.smart_filter on
/filter add irc_smart * irc_smart_filter *

Exemple en console

Sous Linux, il suffira de pouvoir ouvrir un socket en ligne de commande :

> man socket
SOCKET(1)                             General Commands Manual                             SOCKET(1)

NAME
       socket - create a TCP or a UNIX domain socket and connect to stdin/out
[...]
DESCRIPTION
Socket  creates  an  Internet  domain  TCP  or a UNIX domain stream socket and connects it to stdin and stdout.
The host argument can be an Internet number in dot-notation (like ``130.149.28.10'') or a domain name.
In this case it must be possible to resolve the name to  a  valid Internet  address  with  gethostbyname(3).
The port argument can be a port number or a service name which can be mapped to a port number by getservbyname(3).
If an UNIX domain socket is wanted to be created instead of an Internet socket, 
specify the path instead of an internet (canonical  domain named or dot-notated) host.
The hostname is treated as a pathname if contains at least a single slash.
I.e. if one wants to create or connect to a socket in the current directory, 
use ./filename to specify the connection point.
> socket -v chat.freenode.net 6667
inet: connected to chat.freenode.net port 6667 (ircd)
:barjavel.freenode.net NOTICE * :*** Looking up your hostname...
:barjavel.freenode.net NOTICE * :*** Checking Ident
:barjavel.freenode.net NOTICE * :*** Found your hostname
:barjavel.freenode.net NOTICE * :*** No Ident response
_

Un serveur - barjavel.freenode.net - répond (toutes les lignes qui débutent par “:” vous sont envoyées par le serveur) et vous demande votre identité.

Pour s'identifier auprès du serveur :

nick NICK                 <<<  la commande "nick oleodon" permet de changer son pseudonyme (ie, nickname) en "oleodon"
user NICK SERVER bla ID   <<<  la commande "user" permet de s'identifier sur le serveur

Les deux lignes sont à taper, peu importe l'ordre. NICK est votre pseudo, SERVER est votre hôte (ici barjavel.freenode.net). Si tout se passe bien (le pseudo choisi n'est pas occupé par exemple), on accède au serveur freenode et à ses nombreux canaux (channels, chans) comme #laphysique ou #laquadrature !

La sortie écran complète lors de la connexion de l'utilisateur toutatis sur le serveur freenode :

> socket -v chat.freenode.net 6667
inet: connected to chat.freenode.net port 6667 (ircd)
:barjavel.freenode.net NOTICE * :*** Looking up your hostname...
:barjavel.freenode.net NOTICE * :*** Checking Ident
:barjavel.freenode.net NOTICE * :*** Found your hostname
:barjavel.freenode.net NOTICE * :*** No Ident response
user toutatis tepper.freenode.net bla human     
nick toutatis
:barjavel.freenode.net 001 toutatis :Welcome to the freenode Internet Relay Chat Network toutatis
:barjavel.freenode.net 002 toutatis :Your host is barjavel.freenode.net[195.154.200.232/6667], running version ircd-seven-1.1.3
:barjavel.freenode.net 003 toutatis :This server was created Sun Mar 15 2015 at 18:30:16 UTC
:barjavel.freenode.net 004 toutatis barjavel.freenode.net ircd-seven-1.1.3 DOQRSZaghilopswz CFILMPQSbcefgijklmnopqrstvz bkloveqjfI
:barjavel.freenode.net 005 toutatis CHANTYPES=# EXCEPTS INVEX CHANMODES=eIbq,k,flj,CFLMPQScgimnprstz CHANLIMIT=#:120 PREFIX=(ov)@+ MAXLIST=bqeI:100 MODES=4 NETWORK=freenode KNOCK STATUSMSG=@+ CALLERID=g :are supported by this server
:barjavel.freenode.net 005 toutatis CASEMAPPING=rfc1459 CHARSET=ascii NICKLEN=16 CHANNELLEN=50 TOPICLEN=390 ETRACE CPRIVMSG CNOTICE DEAF=D MONITOR=100 FNC TARGMAX=NAMES:1,LIST:1,KICK:1,WHOIS:1,PRIVMSG:4,NOTICE:4,ACCEPT:,MONITOR: :are supported by this server
:barjavel.freenode.net 005 toutatis EXTBAN=$,ajrxz WHOX CLIENTVER=3.0 SAFELIST ELIST=CTU :are supported by this server
:barjavel.freenode.net 251 toutatis :There are 167 users and 87651 invisible on 29 servers
:barjavel.freenode.net 252 toutatis 32 :IRC Operators online
:barjavel.freenode.net 253 toutatis 9 :unknown connection(s)
:barjavel.freenode.net 254 toutatis 58493 :channels formed
:barjavel.freenode.net 255 toutatis :I have 6569 clients and 1 servers
:barjavel.freenode.net 265 toutatis 6569 13246 :Current local users 6569, max 13246
:barjavel.freenode.net 266 toutatis 87818 97578 :Current global users 87818, max 97578
:barjavel.freenode.net 250 toutatis :Highest connection count: 13247 (13246 clients) (1877688 connections received)
:barjavel.freenode.net 375 toutatis :- barjavel.freenode.net Message of the Day - 
:barjavel.freenode.net 372 toutatis :- Welcome to barjavel.freenode.net in Paris, FR, EU. 
:barjavel.freenode.net 372 toutatis :- Thanks to Bearstech (www.bearstech.com) for sponsoring
:barjavel.freenode.net 372 toutatis :- this server!
:barjavel.freenode.net 372 toutatis :-  
:barjavel.freenode.net 372 toutatis :- BARJAVEL, RENE [1911-1985].  Born in Nyons, he was a
:barjavel.freenode.net 372 toutatis :- science-fiction author, a journalist and a critic. He is
:barjavel.freenode.net 372 toutatis :- credited with having written the first novel to introduce 
:barjavel.freenode.net 372 toutatis :- the Grandfather Paradox in time travel, in his 1943 work 
:barjavel.freenode.net 372 toutatis :- 'Le Voyageur imprudent'.
:barjavel.freenode.net 372 toutatis :-  
:barjavel.freenode.net 372 toutatis :- Welcome to freenode - supporting the free and open source
:barjavel.freenode.net 372 toutatis :- software communities since 1998.
:barjavel.freenode.net 372 toutatis :-  
:barjavel.freenode.net 372 toutatis :- By connecting to freenode you indicate that you have read and
:barjavel.freenode.net 372 toutatis :- accept our policies as set out on http://www.freenode.net
:barjavel.freenode.net 372 toutatis :- freenode runs an open proxy scanner. Please join #freenode for
:barjavel.freenode.net 372 toutatis :- any network-related questions or queries, where a number of
:barjavel.freenode.net 372 toutatis :- volunteer staff and helpful users will be happy to assist you.
:barjavel.freenode.net 372 toutatis :-  
:barjavel.freenode.net 372 toutatis :- You can meet us at FOSSCON (http://www.fosscon.org) where we get
:barjavel.freenode.net 372 toutatis :- together with like-minded FOSS enthusiasts for talks and
:barjavel.freenode.net 372 toutatis :- real-life collaboration.
:barjavel.freenode.net 372 toutatis :-  
:barjavel.freenode.net 372 toutatis :- We would like to thank Private Internet Access
:barjavel.freenode.net 372 toutatis :- (https://www.privateinternetaccess.com/) and the other
:barjavel.freenode.net 372 toutatis :- organisations that help keep freenode and our other projects
:barjavel.freenode.net 372 toutatis :- running for their sustained support.
:barjavel.freenode.net 372 toutatis :-  
:barjavel.freenode.net 372 toutatis :- In particular we would like to thank the sponsor
:barjavel.freenode.net 372 toutatis :- of this server, details of which can be found above.
:barjavel.freenode.net 372 toutatis :-  
:barjavel.freenode.net 376 toutatis :End of /MOTD command.
:toutatis MODE toutatis :+i
_

On peut même se demander qui on est pour le serveur (commande whois) :

whois toutatis
:barjavel.freenode.net 311 toutatis toutatis ~toutatis IDSERVER * :human
:barjavel.freenode.net 312 toutatis toutatis barjavel.freenode.net :Paris, FR
:barjavel.freenode.net 378 toutatis toutatis :is connecting from *IDSERVER IP
:barjavel.freenode.net 317 toutatis toutatis 6 1472574885 :seconds idle, signon time
:barjavel.freenode.net 318 toutatis toutatis :End of /WHOIS list.
_

IDSERVER est l'identifiant de toutatis auprès du serveur et IP son addresse IP publique. Vous pouvez avoir ces informations pour tous les utilisateurs connectés au serveur.

Pour rejoindre un ou plusieurs canaux, on utilise la commande join :

join #laphysique
:toutatis!~toutatis@IDSERVER JOIN #laphysique
:karatkievich.freenode.net 332 toutatis #laphysique :infos, sciences & olives
:karatkievich.freenode.net 333 toutatis #laphysique dudorino!~duke@unaffiliated/dudorino 1472559334
:karatkievich.freenode.net 353 toutatis = #laphysique :toutatis dudorino @ChanServ
:karatkievich.freenode.net 366 toutatis #laphysique :End of /NAMES list.
_

Pour envoyer un message sur ce channel, on utilise la commande privmsg :

privmsg #laphysique :hello world

Pour envoyer un message à l'utilisateur john31 en particulier :

privmsg john31 :hello john31, asv lol ?
:!: Ne pas oublier les “:” avant de taper son message, sinon seulement le premier mot est envoyé.
:!: Régulièrement, le serveur envoit un “PING :serveur”, il faut gentiment répondre “PONG :serveur” pour signifier que vous êtes toujours présent sur la ligne. Si vous ne répondez pas, vous serez déconnecter au bout d'un certain temps (ie, timeout).
PING :barjavel.freenode.net
PONG :barjavel.freenode.net   <<< ou "pong" tout simplement

Voilà pour la mise en bouche, votre client favori reproduira ces étapes à chaque connexion sur un serveur (vous pouvez en avoir plusieurs en même temps) et ouvrira un socket pour chacune d'entre elles.


Références

1)
aka core
2)
aka buffer
/home/duke/www/dukeart/wiki/data/pages/prog/web/irc-start.txt · Last modified: 2020/12/24 17:00 (external edit)