IRC

miniatura|dereita|Imaxe do cliente de IRC BitchX.

**IRC** son as siglas de **Internet Relay Chat** ("retransmisión de charla por Internet"), unha forma de comunicación instantánea sobre a Internet deseñada para a grupos de persoas que utilizan foros chamados "canais".

O IRC foi creado por Jarkko Oikarinen a finais de agosto de 1988 como substituta dun programa chamado MUT nun BBS chamado OuluBox en Finlandia. Oikarinen inspirouse no Bitney Relay Chat que funcionaba na rede Bitnet. IRC fíxose popular durante a tentativa de golpe de estado na Unión Soviética de 1991, cando se silenciaron os demais medios de comunicación.

O IRC é un protocolo aberto que utiliza TCP e, opcionalmente, SSL.
Un servidor de IRC pode ligar con outros servidores de IRC para expandir a rede. Os usuarios acceden ás redes de IRC ligando o seu cliente cun servidor. Existen moitas aplicacións clientes e servidores, como mIRC. A maioría dos servidores de IRC non esixen que os usuarios se rexistren pero si que escolla un nick.

O IRC é un protocolo de texto sinxelo, o que significa que é completamente posíbel (aínda que incómodo) utilizar IRC mediante un cliente básico de byte-stream como netcat ou telnet. Porén, o protocolo só utiliza unha versión lixeiramente mencionada do ASCII e non fornece a posibilidade de incluír caracteres que non estean neste conxunto de caracteres en texto, o que ten resultado en que se empreguen moitas codificacións de caracteres distintas e incompatíbeis, como ISO 8859-1 ou UTF-8.

## Arquitectura 
Existen multitude de redes IRC en todo o mundo, e cada rede engloba varios servidores. Estes servidores son os que xestionan ás diferentes canles de conversa. O sistema de funcionamento baséase na conexión cliente-servidor. Dende un mesmo cliente pódese ter acceso a varias redes simultaneamente. Algunhas das redes máis importantes son:

* EFnet
* IRCnet
* QuakeNet
* Undernet

## Clientes 
Existen infinidade de clientes que permiten conectarse aos diferentes servidores. En windows, un dos máis comúns é o mIRC, que achega unha gran facilidade de uso e scripts. Outros clientes moi empregados son Bersirc, KVIrc, Trillian e Visual IRC.

En UNIX existen un par de clientes moi empregados, Irssi e BitchX. Tamén está dispoñible Xchat que incorpora gran cantidade de funcións e resulta algo máis amigable que os anteriores.

## Bots 
Un *bot* é un conxunto de scripts ou un programa independente que se conecta ó IRC coma un cliente normal pero coa diferenza de que leva a cabo labores automatizadas.

O primeiro bot foi creado por Grez Lindah, e actualmente existen gran cantidade de bots escritos nunha gran variedade de linguaxes de programación.

## Canles 
O medio de comunicación básico nunha sesión de IRC son as canles. Pódense ver tódalas canles dun servidor utilizando seguinte comando:

`/list [#string] [-min #] [-max #]`

Este comando proporciona unha lista completa das canles dispoñibles no servidor no que esteamos conectados. Para acceder a unha canle específica temos que facer uso do seguinte comando:

`/join nome_canle`

Unha vez unidos á canle pódense enviar mensaxes que poden ler todos aqueles usuarios que estean conectados nesa canle. As canles dispoñíbeis en toda a rede IRC levan o prefixo *#* e as que só o están nun servidor local usan *&*. Outras canles (menos comúns e non estandarizadas) son as que levan *+* (canais sen operadores) e *!*.

## Modos 
Todo usuario e canle de conversa pode ter asociados unha serie de modos. Os modos abrévianse con letras únicas de maneira que se poidan ligar de maneira concisa. A maioría das redes de IRC inclúen moitos modos extra non especificados en ningún documento RFC, o que esixe que os clientes se adapten, cousa que non resulta difícil, xa que cando se rexistra na rede envíase unha lista de todos os modos de usuario e de canal válidos.

### Modos de usuario 
* -i: invisible (O usuario non é visible de cara ó resto de usuarios)
* -s: permite a recepción de avisos procedentes do servidor
* -w: permite a recepción de wallops
* -o: define se un usuario é ou non un ircop (“irc operador”)

### Modos de canle 
* -o (symbol @):define se un usuario é ou non un operador de canle.
* -p: define se a canle é ou non de carácter privado.
* -i: permite invitar usuarios externos por medio dos operadores de canle
* -t: Topic (so configurable por medio dos operadores).
* -l: limita o número de usuarios dentro dunha canle.
* -b: permite banear usuarios dunha canle.
* -v: voz (privilexio de grao menor ca do operador)
* -k: permite definir unha clave para a canle

## Operators e Ircops 
Os ircops son usuarios normais do IRC coa diferenza de que teñen privilexios sobre o resto de usuarios. Estes privilexios afectan aspectos que teñen que ver co bo funcionamento da rede dentro do IRC. Son os encargados de que todo funcione correctamente, poden pechar unha canle se o consideran oportuno. Poden, de igual forma, banear de forma permanente a algún usuario se estivese infrinxindo algunha regra do IRC.

Os operadores de canle son os encargados de xestionar unha canle. Dentro da canle teñen absoluto control sobre o resto de usuarios. Normalmente o creador dunha canle vai ser sempre operador da mesma, este poderá definir *topics*, *modos* e outros aspectos relativos a canle.

## Véxase tamén 
### Ligazóns externas 
* RFC do protocolo de irc, 1459 (En castelán)