professionale.gif (1244 byte) Professionale.jpg (10348 byte)  Dario de Judicibus (ddjudicibus@tecnet.it)

I nuovi protocolli: IRC

 

Abbiamo introdotto IRC nella sezione Primo Contatto. Qui esamineremo a fondo questo sistema di comunicazione il cui principio di base poggia su una rete di server che permettono a un certo numero di client di poter accedere ai canali, aree di discussione pubbliche o private

Immaginate un canale IRC come un salotto in cui varie persone stanno parlando contemporaneamente. Entrando, vi ritrovate nel bel mezzo di una o più discussioni. Ognuno può vedere quello che dicono gli altri e intervenire, indipendentemente dal fatto che il canale sia libero oppure moderato. Sia il canale sia i partecipanti possono, infatti, possedere caratteristiche e privilegi (si veda il riquadro relativo ai comandi IRC, che abbiamo inserito nel CD-ROM allegato).
Per esempio, in un canale moderato (+m) solo gli operatori (+o) e gli utenti a cui è stata data l’autorizzazione a parlare (+v) possono intervenire nella discussione. Gli altri possono solo «ascoltare».


Canali: illimitati, ma non permanenti

È possibile creare un numero illimitato di canali IRC, così come non ha limite la quantità di utenti in grado di accedere a uno stesso canale. Per attivare una sessione, il client deve, per prima cosa, connettersi a un server all’interno di una rete IRC su una porta definita (in genere la 6667, ma per motivi di prestazioni alcuni server «ascoltano» anche su altre, come la 5555 o la 6666).
Tutti i server di una stessa rete sono interconnessi, quindi tutti i computer collegati a un server della stessa rete possono accedere agli stessi canali che, a differenza dei newsgroup, non sono permanenti. Chiunque può crearne uno, in qualunque momento, accedendovi per primo e acquistando, al contempo, i privilegi di operatore. Quando l’ultimo partecipante esce, il canale sparisce automaticamente.
Il nome di un canale inizia sempre con il carattere # se questo è «globale» (cioè accessibile da qualunque server) oppure con & se è accessibile solo da un server ben definito (canale locale). Il resto del nome può contenere qualunque carattere a eccezione dello spazio, del carattere ASCII 0x07 o Ctrl-G e della virgola, che viene usata nel protocollo IRC come separatore di lista.
Conoscere il nome del canale non basta per accedervi: è necessario sapere anche in quale rete questo si trova. Due canali differenti appartenenti a due reti distinte possono, infatti, avere lo stesso nome, ma non hanno necessariamente gli stessi partecipanti e il medesimo contenuto.


Comunicazioni private

Oltre ai canali pubblici – moderati o meno – esiste la possibilità di usare IRC per le conversazioni a due (query) o mandare messaggi ad altri utenti, sia che si trovino in un canale sia che stiano chiacchierando in modo privato.
Tutti gli utenti hanno un nome, il nickname. Dal momento che, nella maggior parte delle reti IRC non esiste alcun meccanismo di registrazione di un identificativo, ognuno può scegliere il suo, sperando che non sia già utilizzato da altri. Vedremo più avanti cosa questo comporta.


L’architettura

Una rete IRC è formata da tanti server interconnessi fra loro in una struttura ad albero non gerarchica.
Ecco perché, se uno di questi collegamenti cade, si ha quello che in gergo si chiama uno split, ovvero una divisione. In pratica la rete si divide in due tronconi, e tutti i canali si spezzano in due.
Questo tipo di architettura non è stato ideato a prova di eventi, anzi è piuttosto delicata, se non addirittura debole. In pratica, basta un collegamento caduto o un server bloccato per impedire a un gruppo di client di accedere ai vari canali.
Non è previsto alcun meccanismo di recupero e l’utente scollegato spesso non può far altro che cercare un differente ingresso in rete o aspettare che qualcuno ristabilisca l’integrità del sistema. Anche la gestione dei canali è lasciata agli utenti.


Il caso nickname

Nulla è del tutto sicuro e stabile in IRC. Prendiamo, per esempio il soprannome. Ognuno, all’inizio di una sessione IRC dovrà decidere il proprio. Se questo è già utilizzato, verrà intimato a sceglierne un altro, fino a che non ne troverà uno libero, che rimarrà lo stesso per tutta la sessione (a meno che l’utente non decida di cambiarlo) ma non può essere garantito fra una sessione e l’altra.
Nel caso di divisione della rete, tuttavia, può succedere che due utenti prendano lo stesso soprannome nelle due sottoreti che si sono venute a creare. In tal caso, nel momento in cui la rete viene ristabilita, i due utenti vengono disconnessi automaticamente (collisione). Da notare che ogni utente è identificato in rete anche da un «nome utente» – che può essere paragonato al nome di accesso a un sistema (login) – che un utente deve immettere quando si collega. Non può essere modificato e non ha alcuna corrispondenza con il soprannome.


Operatori dei canali

La gestione dei canali è lasciata agli utenti con privilegi particolari, chiamati operatori. Non bisogna confondere un operatore di canale con un operatore IRC. Questi ultimi sono gli amministratori dei server IRC e della rete che non si occupano – o quantomeno non dovrebbero farlo – dei canali, ma solo del corretto funzionamento del sistema.
Gli operatori di canale sono invece normali utenti che hanno creato un canale o ai quali un altro operatore ha dato i privilegi di chan-op. Chiunque crea un canale, infatti, ne diviene automaticamente operatore. È opportuno che ci sia più di un operatore per canale perché, se per qualunque motivo, l’unico amministratore si dovesse assentare, nessuno sarà più in grado di gestire la situazione. In questo caso l’unica soluzione è chiedere a tutti i presenti di uscire e poi rientrare, in modo tale che il primo entrato acquisterà i privilegi di operatore.
È evidente che tutto funziona correttamente solo se i partecipanti si comportano in modo onesto. Per evitare che alcuni cerchino intenzionalmente di creare problemi, gli operatori hanno la facoltà di buttar fuori l’utente indesiderato.
Anche in questo caso, vige il principio di «non certezza». L’utente può infatti rientrare con un altro nome, da un altro server, attraverso un altro dominio. I modi di prevenire attacchi maliziosi esistono, ma è una battaglia fra esperti... Senza contare che, se a causa di un evento imprevisto – per esempio uno split – un utente maleducato diviene l’unico operatore di un canale, agli altri non resta che crearne un nuovo e lasciare quello vecchio a disposizione del tizio in questione.


Il protocollo

Il protocollo IRC è basato su stringhe di testo in cui un carattere è formato da 8 bit, ma funziona correttamente anche nei sistemi che supportano solo i caratteri US-ASCII (7 bit). Può essere usato sia nelle connessioni fra client e server, sia in quelle fra due server. Un aspetto interessante riguarda i tre caratteri { } e |.
Dato che l'autore del protocollo è finlandese, questi caratteri sono considerati la versione minuscola dei caratteri [ ] e \.
Lo scambio di messaggi tra le controparti è molto flessibile. Per esempio, un comando in genere comporta una replica, ma chi lo emette deve partire dal presupposto che essa non arrivi mai e comportarsi di conseguenza.
In effetti IRC è affidabile solo in quanto poggiato sul TCP. Per il resto è un protocollo molto semplice.
In pratica l'interazione fra i sistemi è asincrona e non affidabile. Ogni messaggio è formato da tre parti e può essere lungo fino a un massimo di 512 caratteri, spazi e terminazione inclusi: un prefisso opzionale, un comando, e una serie di parametri (fino a quindici). Il carattere di separazione è lo spazio, quello di terminazione la classica coppia CRLF.
Il prefisso, se fornito, inizia sempre con il carattere :il suo scopo è quello di indicare chi ha originato il messaggio. Se quest’ultimo non è fornito, il destinatario assume che il mittente è il sistema che ha spedito per ultimo il messaggio. In genere i client non usano il prefisso, o se lo fanno possono usare solo il soprannome con cui sono conosciuti dal server a cui sono collegati. Dopo il prefisso si può trovare uno dei vari comandi IRC oppure una stringa che rappresenta un codice di tre cifre utilizzato per le risposte ai comandi sia normali sia relative a messaggi d’errore.
I messaggi scorrono sempre attraverso la via più breve fra due punti della rete e, a meno di cadute dei collegamenti, sempre attraverso lo stesso cammino. Esistono vari modi di comunicare in IRC.
Nella conversazione a due vengono interessati solo quei server che si trovano sul cammino più corto che si può stabilire fra i due client.
Un client può inoltre comunicare con una lista di altri. Si tratta di uno schema alquanto inefficiente perché lo stesso messaggio può passare più volte per la stessa connessione fra server.
Lo schema più efficiente è quello del canale, che utilizza un meccanismo multicast per minimizzare la quantità di messaggi che passano in rete.

I comandi

In genere, per accedere a una rete IRC non è necessario fornire alcuna parola chiave. Se questo è vero in linea di massima per i client, non lo dovrebbe essere per i server. Anche se non obbligatorio, è opportuno che a un server sia richiesto di fornire una password per connettersi alla rete, altrimenti qualcuno potrebbe programmare un client che, simulando un server, finirebbe per diventare un vero e proprio cavallo di Troia per la rete IRC. Per mandare una password si usa il comando PASS. Una volta stabilita la connessione, l'utente deve dire con quale nome si vuole far conoscere dalla rete. Per questo c’è il comando NICK che ha due parametri: il primo è il soprannome desiderato, il secondo è un contatore (hopcount) che viene incrementato dai vari server man mano che il messaggio cammina nella rete, così da sapere «quanto lontano» è il richiedente da un certo server. La distanza si misura in connessioni server-to-server. Se il nome è già occupato, il client si vedrà ricevere un messaggio ERR_NICKCOLLISION e dovrà riprovare di nuovo.
Solo a questo punto sarà possibile spedire il comando USER. Questo ha quattro parametri: identificativo utente, nome host, nome server, e nome «reale» dell'utente. Solo il primo e il quarto hanno senso quando il messaggio è spedito da un client. Il secondo e il terzo vengono usati nelle comunicazioni fra server. Da notare due cose: in primo luogo l'identificativo dell'utente non ha niente a che vedere con il soprannome. Quest’ultimo può essere cambiato in qualunque momento, mentre il primo rimane fisso per tutta la sessione. Secondo: il nome reale deve essere preceduto dai due punti, dato che può contenere qualunque carattere, spazi compresi, a eccezione della sequenza di terminazione.
Una lista completa dei comandi con i rispettivi parametri è riportata nel CD-ROM allegato. Oltre a quelli di registrazione, esistono quelli per la gestione dei canali, come JOIN, PART, TOPIC, per i partecipanti, come MODE o KILL, per spedire messaggi o richiedere informazioni, come PRIVMSG o WHOIS, per gestire i server, come REHASH o RESTART.
Da notare che i comandi in questione sono quelli del protocollo IRC, non quelli di uno specifico client come mIRC o MacIRC. I comandi applicativi sono differenti a seconda del programma, e possono corrispondere o meno a quelli del protocollo.

 

 

 

Operazioni di registrazione

Comando

PASS

Parametri

<parola d'ordine>

Descrizione

Spedisce ad un server IRC la parola d'ordine per la connessione alla rete, nel caso sia prevista. Questo comando va lanciato prima dei comandi NICK e USER per un client e SERVER per un server.

Risposte

Nessuna

Errori

ERR_NEEDMOREPARAMS, ERR_ALREADYREGISTERED

Esempio

PASS isabella

 

 

Comando

NICK

Parametri

<soprannome> [<contatore salti>]

Descrizione

Serve a fornire il soprannome con cui si vuole essere conosciuti in rete o per modificarne uno precedentemente specificato. Il contatore dei salti misura la distanza del client dal server che riceve la richiesta calcolata in "collegamenti fra server". Questo comando va lanciato prima del comando USER.

Risposte

Nessuna

Errori

ERR_NONICKNAMEGIVEN, ERR_NICKNAMEINUSE, ERR_ERRONEUSNICKNAME, ERR_NICKCOLLISION

Esempio

NICK marmotta

 

 

Comando

USER

Parametri

<nome utente> <nome host> <nome server> <nome reale>

Descrizione

Insieme al comando NICK, questo comando serve a registrare un utente alla rete. Il nome utente è il nome con cui l'utente sarà conosciuto in rete, e vale per l'intera sessione, anche se l'utente si cambia soprannome. Il nome reale dovrebbe essere il nome della persona che si è connessa, o comunque un modo per renderla identificabile agli altri utenti. Gli altri due parametri sono il nome dell'host da cui si connette l'utente e quello del server IRC a cui è direttamente connesso. Questi ultimi due parametri sono ignorati quando il messaggio è spedito dal client, per ragioni di sicurezza, e vanno utilizzati solo nelle comunicazioni fra server.

Risposte

Nessuna

Errori

ERR_NEEDMOREPARAMS, ERR_ALREADYREGISTERED

Esempio

:Marmotta USER ddj dejudicibus irc.server.it :Dario de Judicibus

 

 

Comando

SERVER

Parametri

<nome server> <contatore salti> <informazioni>

Descrizione

Viene utilizzato da un server per connettersi alla rete. Il contatore salti serve ad indicare ad un altro server quanto dista in termini di connessioni server-server il sistema che ha generato il comando. Questo comando serve anche a fornire informazioni varie agli altri server in rete.

Risposte

Nessuna

Errori

ERR_ALREADYREGISTERED

Esempio

SERVER irc.server.it 1 :Server Roma Sud

 

 

Comando

OPER

Parametri

<utente> <parola d'ordine>

Descrizione

Viene utilizzata per ottenere i privilegi di operatore IRC. Se la parola d'ordine è valida, il server emette in rete un comando MODE +o per il soprannome associato all'utente in questione.

Risposte

RPL_YOUREOPER

Errori

ERR_NEEDMOREPARAMS, ERR_NOOPERHOST, ERR_PASSWDMISMATCH

Esempio

:marmotta OPER ddj isabella

 

 

Comando

QUIT

Parametri

[<messaggio di addio>]

Descrizione

Serve a terminare la connessione alla rete. Se specificato, viene spedito a tutti i server un messaggio di addio, altrimenti viene spedito solo il soprannome dell'utente.

Risposte

Nessuna

Errori

Nessuno

Esempio

QUIT :Me ne vado in letargo

 

 

Comando

SQUIT

Parametri

<server> <commento>

Descrizione

Viene utilizzato da un server per chiedere ad un altro server di chiudere il collegamento fra i due. Il primo parametro è il nome del server che dovrà disconnettere il richiedente. Questo comando può essere usato da un operatore per disconnettere un server remoto. In tal caso dovrà essere fornito un commento sul motivo dell'operazione effettuata.

Risposte

Nessuna

Errori

ERR_NOPRIVILEGES, ER_NOSUCHSERVER

Esempio

:RomaSud SQUIT irc.server.it :Server congestionato

 

Operazioni di canale

Comando

JOIN

Parametri

<canale>{, <canale>} [chiave{, <chiave>}]

Descrizione

Questo comando serve ad entrare in uno o più canali. Nel caso un canale preveda una parola d'ordine per l'ingresso, essa dovrà essere fornita nella stessa sequenza in cui sono riportati i canali che si desidera accedere. Se l'accesso viene autorizzato, l'utente riceverà l'argomento di discussione attuale del canale ed una lista dei partecipanti. Se e come tale autorizzazione viene data, dipende dagli attributi del canale e dell'utente (vedi relative tabelle).

Risposte

RPL_TOPIC

Errori

ERR_NEEDMOREPARAMS, ERR_INVTEONLYCHAN, ERR_CHANNELISFULL, ERR_NOSUCHCHANNEL, ERR_BANNEDFROMCHAN, ERR_BADCHANNELKEY, ERR_BADCHANMASK, ERR_TOOMANYCHANNELS

Esempio

:marmotta JOIN # montagna,#valle,&amici

 

 

Comando

PART

Parametri

<canale>{, <canale>}

Descrizione

Questo comando serve ad uscire da uno o più canali e ad essere rimossi dalla lista dei partecipanti.

Risposte

Nessuna

Errori

ERR_NEEDMOREPARAMS, ERR_NOTONCHANNEL, ERR_NOSUCHCHANNEL

Esempio

:marmotta PART #montagna

 

 

Comando

MODE

Parametri

<canale> {[+|-]|o|p|s|i|t|n|b|v} [<limite>] [<utente>] [<maschera>]

<soprannome> {[+|-]|i|w|s|o}

Descrizione

Serve ad impostare gli attributi per uno specifico canale, per un determinato partecipante ad un canale, o per un generico utente. La lista degli attributi è riportata nelle due tabelle a parte in fondo alla sezione.

Risposte

RPL_BANLIST, RPL_CHANNELMODEIS, RPL_ENDOFBANLIST, RPL_UMODEIS

Errori

ERR_NEEDMOREPARAMS, ERR_CHANOPRIVSNEEDED, ERR_NOTONCHANNEL, ERR_UNKNOWNMODE, ERR_USERSDONTMATCH, ERR_UMODEUNKNOWNFLAG, ERR_NOSUCHNICK, ERR_KEYSET, ERR_NOSUCHCHANNEL

Esempio

MODE #montagna +o marmotta

:marmotta MODE ghiro +i

 

 

Comando

TOPIC

Parametri

<canale> [<argomento>]

Descrizione

Serve ad impostare o ad ottenere l'argomento corrente di discussione in un certo canale.

Risposte

RPL_NOTOPIC, RPL_TOPIC

Errori

ERR_NEEDMOREPARAMS, ERR_CHANOPRIVSNEEDED, ERR_NOTONCHANNEL

Esempio

:marmotta TOPIC #montagna :Le valli più belle

 

 

Comando

NAMES

Parametri

[<canale>{, <canale>}]

Descrizione

Serve ad ottenere la lista di tutti i partecipanti ad uno o più canali che non siano invisibili. Se un canale è privato o segreto, il richiedente otterrà la lista corrispondente solo se sta partecipando a quel canale.

Risposte

RPL_NAMREPLY, RPL_ENDOFNAMES

Errori

Nessuno

Esempio

:marmotta NAMES #montagna,#valli,#laghi

 

 

Comando

LIST

Parametri

[<canale>{, <canale>} [<server>]]

Descrizione

Serve ad ottenere una lista di canali ed i rispettivi argomenti. Se un canale è privato, l'argomento sarà fornito solo se il richiedente sta partecipando a quel canale. Se un canale è segreto, non sarà incluso nella lista, a meno che il richiedente non ne faccia già parte. La richiesta può essere fatta ad uno specifico server.

Risposte

RPL_LIST, RPL_LISTSTART, RPL_LISTEND

Errori

ERR_NOSUCHSERVER

Esempio

:marmotta LIST #montagna,#alpi

 

 

Comando

INVITE

Parametri

<soprannome> <canale>

Descrizione

Serve ad invitare una certa persona a partecipare ad un canale. Se il canale è accessibile solo su invito, questo comando deve essere emesso da un operatore.

Risposte

RPL_INVITING, RPL_AWAY

Errori

ERR_NEEDMOREPARAMS, ERR_NOTONCHANNEL, ERR_CHANOPRIVSNEEDED, ERR_NOSUCHNICK, ERR_USERONCHANNEL

Esempio

:marmotta INVITE ghiro #dolomiti

 

 

Comando

KICK

Parametri

<canale> <utente> [<commento>]

<canale>{,<canale>} <utente>{,<utente>} [<commento>]

Descrizione

Forza un utente a lasciare un canale. Può essere emesso solo da un operatore di canale. Il server che riceve il comando è responsabile di verificare che chi lo ha originato abbia effettivamente i privilegi richiesti per emetterlo. Il commento opzionale può essere utilizzato per spiegare i motivi di un'azione così drastica.

Risposte

Nessuna

Errori

ERR_NEEDMOREPARAMS, ERR_BADCHANMASK, ERR_NOTONCHANNEL, ERR_NOSUCHCHANNEL, ERR_CHANOPRIVSNEEDED

Esempio

:marmotta KICK #montagna papera :Non ci sono papere in montagna

 

 

Attributi di canale

Attributi utente

o

l'utente ha i privilegi di operatore di canale

i

definisci l'utente come invisibile

p

il canale è privato

s

autorizza l'utente a ricevere avvisi dai server

s

il canale è segreto

w

autorizza l'utente a ricevere i messaggi di servizio

i

il canale può essere acceduto solo su invito

o

definisci l'utente come operatore IRC

t

il tema è modificabile solo dall'operatore di canale  

n

il canale non può ricevere messaggi dall'esterno

m

il canale è moderato

l

il canale ha un numero massimo di partecipanti

b

imposta un filtro di selezione per i partecipanti

v

autorizza a parlare in un canale moderato

k

imposta una chiave di accesso per il canale

 

Comandi di servizio

Comando

VERSION

Parametri

[<server>]

Descrizione

Serve a chiedere al server a cui si è connessi, o ad un altro specifico server in rete, la versione del codice IRC che sta utilizzando.

Risposte

RPL_VERSION

Errori

ERR_NOSUCHSERVER

Esempio

:marmotta VERSION irc.server.it

 

 

Comando

STATS

Parametri

[<richiesta> [<server>]]

Descrizione

Serve a chiedere al server a cui si è connessi, o ad un altro specifico server in rete, una serie di informazioni statistiche. La lista del tipo di richiesta che si può spedire è riportato nella tabella a parte.

Risposte

RPL_STATSCLINE, RPL_STATSILINE, RPL_STATSQLINE, RPL_STATSNLINE, RPL_STATSKLINE, RPL_STATSLLINE, RPL_STATSOLINE, RPL_STATSHLINE, RPL_STATSLINKINFO, RPL_STATSCOMMANDS, RPL_STATSUPTIME, RPL_ENDOFSTATS

Errori

ERR_NOSUCHSERVER

Esempio

:marmotta STATS u irc.server.it

 

 

Comando

LINKS

Parametri

[[<server remoto>] <maschera>]

Descrizione

Serve ad ottenere la lista di tutti i server conosciuti dal server che risponde alla richiesta. In caso, può essere fornita una maschera di selezione per filtrare solo un sottoinsieme dei server.

Risposte

RPL_LINKS, RPL_ENDOFLINKS

Errori

ERR_NOSUCHSERVER

Esempio

:marmotta LINKS irc.server.it *.it

 

 

Comando

TIME

Parametri

[<server>]

Descrizione

Serve a chiedere al server a cui si è connessi, o ad un altro specifico server in rete, l'ora locale.

Risposte

RPL_TIME

Errori

ERR_NOSUCHSERVER

Esempio

:marmotta TIME irc.server.it

 

 

Comando

CONNECT

Parametri

<server bersaglio> [<porta> [<server remoto>]]

Descrizione

Forza uno specifico server a connettersi immediatamente con un altro server. Questo comando può essere emesso solo da un operatore IRC.

Risposte

Nessuna

Errori

ERR_NOSUCHSERVER, ERR_NEEDMOREPARAMS, ERR_NOPRIVILEGES

Esempio

:marmotta CONNECT irc.server.it 6666 irc.server.ch

 

 

Comando

TRACE

Parametri

[<server>|<soprannome>]

Descrizione

Serve a trovare il cammino per arrivare ad uno specifico server. In caso, si può tracciare il cammino fino ad un altro utente.

Risposte

RPL_TRACELINK, RPL_TRACECONNECTING, RPL_TRACEUNKNOWN, RPL_TRACEUSER, RPL_TRACESERVICE, RPL_TRACECLASS, RPL_TRACEHANDSHAKE, RPL_TRACEOPERATOR, RPL_TRACESERVER, RPL_TRACENEWTYPE

Errori

ERR_NOSUCHSERVER

Esempio

:marmotta TRACE papera

 

 

Comando

ADMIN

Parametri

[<server>]

Descrizione

Serve a chiedere al server a cui si è connessi, o ad un altro specifico server in rete, il nome della persona che lo amministra.

Risposte

RPL_ADMINME, RPL_ADMINLOC1, RPL_ADMINLOC2, RPL_ADMINEMAIL

Errori

ERR_NOSUCHSERVER

Esempio

:marmotta ADMIN irc.server.it

 

 

Comando

INFO

Parametri

[<server>|<soprannome>]

Descrizione

Serve a chiedere al server a cui si è connessi, o ad un altro specifico server in rete, tutta una serie di informazioni rilevanti per quel server. Si può fornire anche un soprannome, ed in tal caso le informazioni riguarderanno il server a cui quell'utente è collegato.

Risposte

RPL_INFO, RPL_ENDOFINFO

Errori

ERR_NOSUCHSERVER

Esempio

:marmotta INFO irc.server.it

 

 

Informazioni statistiche

c

lista di tutti i server a cui il server specificato può connettersi od al quale essi possono connettersi

h

lista di tutti i server terminali o di quelli che agiscono come hub

i

lista di tutte le macchine da cui un client può connettersi al srver specificato

k

lista di tutti gli utenti od i sistemi banditi per il server specificato

l

lista di tutte le connessioni al server specificato con i tempi di connessione, il traffico in byte ed i messaggi

m

lista di tutti comandi riconosciuti dal server con il relativo utilizzo

o

lista di tutti i sistemi dai quali un normale utente può accedere come operatore

y

mostra tutte le linee di classe Y come definite nel file di configurazione del server

u

ritorna una stringa che mostra da quanto tempo il server specificato è attivo

 

 

Messaggi

Comando

PRIVMSG

Parametri

<destinatario>{,<destinatario>} <testo del messaggio>

Descrizione

Manda un messaggio privato ad uno o più utenti, canali, host o server. Il destinatario può essere specificato come maschera di selezione, ma con alcune limitazioni per evitare il broadcasting.

Risposte

RPL_AWAY

Errori

ERR_NORECIPIENT, ERR_CANNOTSENDTOCHAN, ERR_WILDTOPLEVEL, ERR_NOSUCHNICK, ERR_NOTEXTTOSEND, ERR_NOTOPLEVEL, ERR_TOOMANYTARGETS

Esempio

:marmotta PRIVMSG papera :Attenta che l'acqua è poca…

 

 

Comando

NOTICE

Parametri

<soprannome> <testo>

Descrizione

Manda un messaggio privato ad uno o più utenti, canali, host o server. Il destinatario può essere specificato come maschera di selezione, ma con alcune limitazioni per evitare il broadcasting. Differentemente da PRIVMSG, non è permesso utilizzare repliche automatiche per rispondere a questo tipo di messaggi.

Risposte

Nessuna

Errori

Nessuno

Esempio

:marmotta NOTICE ghiro :Svegliati! È primavera…

 

 

Comando

WHO

Parametri

[<nome> [o]]

Descrizione

Restituisce una lista di tutti gli utenti il cui soprannome, nome reale, nome utente, nome dell'host o del server a cui essi sono collegati corrisponde al nome od alla maschera fornita. Il parametro "o" serve a limitare la ricerca ad i soli operatori.

Risposte

RPL_WHOREPLY, RPL_ENDOFWHO

Errori

ERR_NOSUCHSERVER

Esempio

:marmotta WHO *.it o

 

 

Comando

WHOIS

Parametri

[<server>] <maschera>[,<maschera>[,…]]

Descrizione

Serve ad ottenere una serie di informazioni relative ad uno o più utenti. Solo le informazioni alle quali si è autorizzati saranno spedite. La richiesta può essere fatta ad uno specifico server.

Risposte

RPL_WHOISUSER, RPL_WHOISCHANNELS, RPL_AWAY, RPL_WHOISIDLE, RPL_ENDOFWHOIS, RPL_WHOISSERVER, RPL_WHOISOPERATOR

Errori

ERR_NOSUCHSERVER, ERR_NONICKNAMEGIVEN, ERR_NOSUCHNICK

Esempio

:marmotta WHOIS irc.server.it papera,ghiro

 

Messaggi di servizio

Comando

WHOWAS

Parametri

<soprannome> <contatore> <server>

Descrizione

Serve ad ottenere informazioni su un soprannome che non esiste più. Si può specificare sia il numero di occorrenze massimo che si desidera ricevere a partire dai dati più recenti che il server che deve fornire i dati storici.

Risposte

RPL_WHOWASUSER, RPL_ENDOFWHOWAS, RPL_WHOISSERVER

Errori

ERR_NONICKNAMEGIVEN, ERR_WASNOSUCHNICK

Esempio

:marmotta WHOWAS papera 3 *.it

 

 

Comando

KILL

Parametri

<soprannome> <commento>

Descrizione

Serve a disconnettere a forza un client da un server. Viene utilizzato soprattutto in caso di collisione di soprannomi per sganciare automaticamente entrambi gli utenti dalla rete. Nel caso venga usato da un operatore, è possibile e consigliabile aggiungere un commento per giustificare il motivo dell'operazione.

Risposte

Nessuna

Errori

ERR_NOPRIVILEGES, ERR_NOSUCHNICK, ERR_NEEDMOREPARAMS, ERR_CANTKILLSERVER

Esempio

KILL ghiro (irc.server.it <- irc.server.ch)

 

 

Comando

PING

Parametri

<server1> [<server2>]

Descrizione

Serve a verificare se effettivamente dall'altro capo di una connessione c'è un utente. Il client che riceve il messaggio deve rispondere a server1 il più presto possibile ed eventualmente anche a server2, se specificato. I server invece non devono mai rispondere ad un messaggio di PING.

Risposte

Nessuna

Errori

ERR_NOORIGIN, ERR_NOSUCHSERVER

Esempio

PING marmotta

 

 

Comando

PONG

Parametri

<demone1> [<demone2>]

Descrizione

Serve a rispondere ad un messaggio di PING. Il client che risponde al PING deve fornire il nome del demone che ha risposto, ed eventualmente può specificare il nome di un altro demone a cui il messaggio di PONG va inoltrato.

Risposte

Nessuna

Errori

ERR_NOORIGIN, ERR_NOSUCHSERVER

Esempio

:marmotta PONG irc.server.it

 

 

Comando

ERROR

Parametri

<messaggio di errore>

Descrizione

Viene utilizzato dai server per riportare agli operatori eventuali errori seri o fatali. Gli errori riportati devono riguardare solo le connessioni fra server. Può essere spedito ad un altro server, ma non ad un client. Per far arrivare il messaggio ad un operatore, quindi, esso deve quindi essere incapsulato in un messaggio di NOTICE.

Risposte

Nessuna

Errori

Nessuno

Esempio

ERROR :La connessione al server irc.server.ch non è attualmente disponibile

NOTICE orso :ERROR da irc.server.it -- La connessione al server irc.server.ch non è attualmente disponibile

 

Comandi opzionali

Comando

AWAY

Parametri

[<messaggio>]

Descrizione

Serve ad impostare una risposta automatica da restituire al mittente di un messaggio privato (PRIVMSG). Per cancellare un messaggio impostato in precedenza, basta emettere il comando senza alcun parametro.

Risposte

RPL_UNAWAY, RPL_NOWAWAY

Errori

Nessuno

Esempio

:marmotta AWAY :Mi sto facendo una camomilla. Torno fra 5 minuti.

 

 

Comando

REHASH

Parametri

Nessuno

Descrizione

Viene utilizzato dagli operatori IRC per forzare un server a rileggere e rielaborare il file di configurazione.

Risposte

RPL_REHASHING

Errori

ERR_NOPRIVILEGES

Esempio

:orso REHASH

 

 

Comando

RESTART

Parametri

Nessuno

Descrizione

Viene utilizzato dagli operatori IRC per forzare un server a ripartire.

Risposte

Nessuna

Errori

ERR_NOPRIVILEGES

Esempio

:orso RESTART

 

 

Comando

SUMMON

Parametri

<utente> <server>

Descrizione

Se un utente sta lavorando su una macchina su cui gira un server IRC ed il server è autorizzato a scrivere sul suo schermo, questo comando può essere utilizzato per invitare l'utente a entrare in IRC. Non tutti i server sono abilitati ad effettuare questa operazione. Se disabilitato, il server deve tornare il messaggio di errore ERR_SUMMONDISABLED e passare oltre il messaggio.

Risposte

RPL_SUMMONING

Errori

ERR_NORECIPIENT, ERR_NOLOGIN, ERR_FILEERROR, ERR_NOSUCHSERVER

Esempio

SUMMON papera irc.server.ch

 

 

Comando

USERS

Parametri

[<server>]

Descrizione

Restituisce una lista di tutti gli utenti che stanno usando il server anche indipendentemente da IRC. Il comando si comporta un po' come i comandi who e finger usati in UNIX per avere informazioni sugli utenti collegati alla rete.

Risposte

RPL_USERSSTART, RPL_NOUSERS, RPL_USERS, RPL_ENDOFUSERS

Errori

ERR_NOSUCHSERVER, ERR_USERSDISABLED, ERR_FILEERROR

Esempio

:marmotta USERS irc.server.ch

 

 

Comando

USERHOST

Parametri

<soprannome>{ <soprannome>{ <soprannome>{ <soprannome>{ <soprannome>}}}}

Descrizione

Serve a restituire una serie di informazioni relative ad una lista fino ad un massimo di cinque utenti collegati alla rete IRC.

Risposte

RPL_USERHOST

Errori

ERR_NEEDMOREPARAMS

Esempio

:marmotta USERHOST ghiro papera orso

 

 

Comando

ISON

Parametri

<soprannome>{ <soprannome>}

Descrizione

Serve a verificare se un certo utente è collegato alla rete IRC. La risposta è una stringa, eventualmente nulla, che riporta solo gli utenti collegati.

Risposte

RPL_ISON

Errori

ERR_NEEDMOREPARAMS

Esempio

:marmotta ISON ghiro orso topo castoro

 

 


Indirizzi Utili

Ecco una lista di indirizzi utili presso i quali potrete trovare informazioni dettagliate su IRC, le varie reti, i canali e i prodotti utilizzabili per accedere ai vari server.

Titolo URL Descrizione
DALnet IRC Network http://www.dal.net/ DALnet è una rete tranquilla, molto ben organizzata, creata dai fondatori del canale #startrek di EFnet. La porta di default è la 7000. I nickname possono essere registrati. Al momento non ci sono server in Italia.
EFnet Non ha un sito ufficiale EFnet è la rete più estesa, e come tale soffre di molti problemi (ritardi, cadute, divisioni). È comunque una rete con moltissimi interessanti canali, e vi si accede in genere dalla porta 6667. Al momento non ci sono server in Italia.
Undernet http://www.undernet.org/ Undernet è più stabile di EFnet e sta rapidamente prendendo piede un po’ dapertutto. Anch’essa ha come porta di default la 6667. Al momento non ci sono server in Italia.
IRC-net Non ha un sito ufficiale, ma si può far riferimento a

http://www.funet.fi/~irc/

IRC-net è una rete nata da una divisione di EFnet nel Giugno 1996, ed è formata prevalentemente da server europei, fra cui quello di Pisa. Una lista dei server italiani è riportata in fondo a questa tabella.

 

 

I server italiani di IRC-net

Una lista dei maggiori canali di IRC-net può essere trovata su

http://www.funet.fi/~irc/channels.html

 

Server

Indirizzo IP

Porte di ascolto

irc.ccii.unipi.it

131.114.29.10

6664-6667

irc.tin.it

194.243.155.93

6665-6669

ircd.tin.it

194.243.154.57

Routing server

irc.flashnet.it

194.247.160.11

6664-6669,7000

irc.ircit.net

194.184.1.154

6665-6669,7000

irc.fun.uni.net

194.183.2.245

6665-6669,7000

 

 

Frequent Asked Questions & Manuali

 

Titolo URL Descrizione
The New IRC Users page http://www.newircusers.com/ Un ottimo punto di partenza per chi vuole entrare nel mondo di IRC.
A Guide to IRC Netiquette http://mirc.stealth.net/mircrulz/ Una serie di suggerimenti su come comportarsi in IRC, tenendo presente che nessuno regola i canali se non gli stessi utenti, ed in particolare quelli che hanno l’autorità di "operatore".
Get started with Internet Chat http://wkweb5.cableinet.co.uk/DANDEB/ircmg.htm Una guida completa e dettagliata su tutto ciò che riguarda IRC, compreso un tutorial ed una lista di tutti i comandi disponibili.
Come scaricare ed installare mIRC http://www.mircscripts.com/mirc-ital.html Le istruzioni in italiano su come scaricare ed installare mIRC.
Absolute mIRC http://www.knfpub.com/axe/chat/irc.html Il sito di Axe, un veterano di IRC. Contiene molti utilissimi link e tutta una serie di informazioni sugli script per mIRC.

 

 

 

Prodotti freeware e shareware

 

Titolo URL Descrizione
MIRC Homepage http://www.mirc.com/ Informazioni sul prodotto mIRC, sull’IRC in generale, ed una lista di indirizzi utili che riguardano il mondo delle conversazioni in rete. mIRC è un client per le piattaforme Microsoft Windows® 3.1 Win32s, Windows® 95/98 e Windows® NT.
PIRCH http://www.pirchat.com/ Un altro client per le piattaforme Microsoft Windows® 95/98 e Windows® NT, ma non per Windows® 3.1.
ViRC http://www.megalith.co.uk/virc/ Un client per il mondo Windows® con interfaccia tipo Office 97, supporto per il video e la voce, ActiveX, VBscript e JavaScript.
XiRCON http://www.xircon.com/ Un altro client per le piattaforme Microsoft Windows® 95/98 e Windows® NT, che può collegarsi a più server contemporaneamente.
ircII http://deckard.mc.duke.edu/irchelp/ircii/ Un client per l’ambiente UNIXÔ dotato di sola interfaccia a comandi: niente grafica, colori, suoni od altri effetti speciali, ma veloce e potente.
OpenChat/2 http://www.escape.com/~mikh/openchat.html/ Un client per la piattaforma OS/2® che supporta il linguaggio ircII ed uno schema di colori simile ad mIRC.
AmIRC http://www.vapor.com/products/?prod=amirc Un client per la piattaforma AmigaÔ con supporto Arexx e la possibilità di sviluppare estensioni basate su un’API dedicata.
Ircle http://www.ircle.com/ Un client per la piattaforma MacOSÔ con diverse caratteristiche interessanti.
Snak http://www.kagi.com/kent/SnakDownload.html Un altro client per la piattaforma MacOSÔ disponibile sia nella versione PowerPC che in quella Motorola 68000. Ne esiste anche una versione in francese.
MacIRC http://www.macirc.com/ Questo client per la piattaforma MacOSÔ è basato su Open Transport. È abbastanza interessante ma presenta una serie di bachi e problemi peraltro conosciuti ed in via di correzione.
cIRCus http://www.cs.vu.nl/~ivo/circus/ Un client per la piattaforma LinuxÔ .
PalmIRC http://members.tripod.com/~hokamoto/PalmIRC.html Un client per la piattaforma PalmOSÔ che gira sia su PalmPilot che su Palm III o sul WorkPad della IBM.

 

Reti e Canali

Quelle in tabella sono le quattro reti più grandi, con almeno 20000 utenti ciascuna. Ne esistono tuttavia molte altre. Una lista completa può essere trovata su
http://www.irchelp.org/irchelp/networks/  
oppure su
http://www.mirc.com/servers.html

I server italiani di IRC-net

Una lista dei maggiori canali di IRC-net può essere trovata su
http://www.funet.fi/~irc/channels.html


Internet News è un mensile della Casa Editrice Tecniche Nuove S.p.A.
© 1995/99. Tutti i diritti sono riservati.
Internet News non risponde di eventuali errori e omissioni.
Commenti a: inews@tecnet.it