Guida a IRC di base

Dom, 12/09/2004 - 01:48

Guida a IRC di base

Inviato da yakuza 2 commenti

Semplice e chiara guida di base sul servizio IRC.

Introduzione

IRC sta per "Internet Relay Chat" ed e` un protocollo (RFC 1459) che permette di discutere in tempo reale. IRC e` formato da tanti canali (chan) ognuno con un proprio argomento di discussione. Per utilizzare IRC si ha bisogno di due cose: un server a cui connettersi ed un software specializzato (Client).

Per chi ha fretta!

  1. Installare X-chat: apt-get install x-chat
  2. Posizionasi sulla riga di comando e digitare: /server irc.azzurra.org
  3. Una volta entrati sulla rete irc digitare: /join #debianitalia
  4. Bene, sei pronto per chattare!

Clients

Come abbiamo gia` detto, per utilizzare IRC abbiamo bisogno di un client. Ne esistono molti, ecco quelli più noti: XChat (GUI), KSirc (GUI), KVIrc (GUI), irssi (Terminale), BitchX (Terminale).

Connessione al server

Una volta avviato il Client dovremo connetterci ad un server, fornendo indirizzo, porta, nome, nickname, ident. Per XChat e KSirc potete utilizzare il piccolo form iniziale compilando i campi con questi valori:

  • Server: irc.azzurra.org
  • Porta: 6667

Se invece utilizzate un Client per terminale o se preferite connettervi manualmente con uno di quelli grafici utilizzate il comando:

/server irc.azzurra.org

Comandi IRC

/join #canale [chiave]
Consente di entrare nel canale di conversazione specificato, se questo richiede una chiave di ingresso essa va inserita come parametro aggiuntivo. E' possibile entrare in più canali in sequenza con un unico comando, usando /join #canale1,#canale2,... [chiave1],[chiave2],...

/part #canale [messaggio]
Consente di uscire dal canale indicato, permette di specificare un messaggio di uscita subito dopo il nome nome del canale. Come per join, si può uscire da più canale in sequenza separandoli da virgole /part #chan1,#chan2,...

/list [opzioni]
Permette di visualizzare la lista dei canali presenti sul network. Dal momento che questi possono essere veramente molto numerosi, esistono una serie di opzioni per filtrare la ricerca, ovvero:
>N dove N è il numero minimo di utenti del canale (quindi /list >50 mostra tutti i canali con 50 persone o più)
N lista i canali creati entro N minuti dal lancio del comando
C < N lista i canali creati prima di N minuti dal lancio del comando
T > N lista i canali con un topic cambiato entro N minuti dal lancio del comando
T < N lista i canali con un topic cambiato prima di N minuti dal lancio del comando

/me messaggio
Consente di scrivere in terza persona, utilizzando i ctcp action

/msg nick messaggio
Invia un messaggio privato ad un utente, lo stesso comando inviato ad un canale invece che ad un nick scrive un messaggio sul canale indicato

/whois [destinazione] nick
Permette di ottenere informazioni sull'utente specificato, la sua maschera comprendente ident@host, i canali su cui si trova, il server che utilizza per collegarsi ad IRC. Per destinazione si può specificare nuovamente il nick, o un server da cui effettuare il whois. Il whois col nick ripetuto due volte consente di ottenere sempre il tempo di idle, che è visibile normalmente solo se ci si trova sullo stesso server del nick che si whoisa

/nick nickname
Attraverso questo comando si può cambiare il proprio nickname

/quit [messaggio]
Permette di disconnettersi dal server, specificando opzionalmente un messaggio di disconnessione che verrà visualizzato nel quit

/away [messaggio]
Permette di impostarsi assenti; in pratica quando si riceve un messaggio o un whois da un altro utente, questo riceverà automaticamente la risposta automatica impostata nel messaggio scritto col comando; scrivendo solo /away, si disattiva questa auto-risposta

/topic #canale [messaggio]
Questo comando serve per leggere il topic di un canale (il messaggio che di solito fa da argomento di conversazione), se si hanno i permessi necessari è possibile anche specificare un messaggio per cambiare il topic

/invite nick #canale
Consente di invitare un utente sul canale specificato

/names #canale
Fornisce un elenco dei nicknames presenti su un canale, è possibile farlo anche stando fuori del canale, ma tutti gli utenti col il mode +i non saranno visibili

/mode nick [opzioni]
Permette di gestire le impostazioni relative alla propria connessione ad IRC, attraverso una serie di parametri che si impostano precedendoli da un + e si rimuovono precedendoli da un - (esempio: /mode Tizio +ix ). Questi i modes impostabili su Azzurra IRC Network:

- i - si risulta invisibili a chi cerca utenti con /names o /who
- j - indica una connessione da una Java chat
- R - accetta messaggi privati solo da nick registrati
- r - indica che il nick è registrato
- s - permette la visione dei messaggi del server
- S - indica una connessione via SSL
- w - permette la visione dei messaggi wallops
- x - cripta l'host per maggiore sicurezza

/kick #canale nick [motivo]
Permette di mandare fuori un utente dal canale (solo se si è operatori), specificando eventualmente una motivazione

/mode #canale [opzioni] [parametri]
Così come /mode per il nick permette di controllare le proprie impostazioni, l'analogo comando per il canale consente di impostare varie caratteristiche per il proprio canale è fattibile solo se si è operatori). A seconda del mode scelto, possono essere richiesti parametri dopo i modes (esempio: /mode #chan +o Caio ). Nel dettaglio i vari modes disponibili su Azzurra:

- b - permette di specificare un nick o una mask che non potrà accedere al canale, richiede parametro (esempio: /mode #chan +b Tonto!*@* ) . Per informazioni su come usare con efficacia il ban, si veda nella sezione in fondo a questa pagina
- c - impedisce di scrivere colorato sul canale
- d - impedisce agli utenti normali di cambiare nick
- i - si può accedere nel canale solo se invitati
- k - si può accedere al canale solo scrivendo la chiave, che va definita come parametro aggiuntivo del mode (esempio: /mode #chan +k apritisesamo )
- l - imposta il limite massimo di utenti che possono accedere al canale, limite da definire come parametro (esempio: /mode #chan +l 20 )
- m - gli utenti normali non possono scrivere sul canale
- M - gli utenti non registrati non possono scrivere sul canale
- n - non si può scrivere sul canale stando fuori dallo stesso
- o - permette di impostare un nick come operatore del canale, il nick va specificato come parametro (esempio: /mode #chan +o Friend )
- p - rende il canale non visibile nel whois
- r - indica che il canale è registrato
- R - gli utenti non registrati non possono entrare sul canale
- s - rende il canale non visibile nella lista dei canali
- t - se impostato, solo gli operatori possono cambiare il topic
- v - permette di impostare un nick come voce del canale, il nick va specificato come parametro (esempio: /mode #chan +v Cross )

Gli operatori del canale hanno la possibilità di cambiare i modes del canale, e quindi di bannare utenti, e di usare kick. Le voci invece hanno semplicemente la possibilità di scrivere sul canale anche quando questo è +m. Si tenga presente che così come con il + si inserisce il mode, con il - lo si toglie, e quindi per togliere lo stato di operatore a qualcuno occorrerà usare /mode #canale -o NICK

E` possibile impostare più modes contemporaneamente (su Azzurra fino ad un massimo di sei), specificando laddove richiesto i vari parametri in sequenza
esempio: /mode #canale +ko-b chiave operatore maskdelban

/admin [destinazione]
Fornisce informazioni sull'amministrazione del server, se ne puo` specificare uno preciso come parametro

/dccallow parametro
Permette di gestire il blocco dei tipi di file a rischio, usando LIST come parametro si può vedere la lista delle persone autorizzate ad inviarci un file, si possono aggiungere nick a questa lista usando come parametro +NICK e rimuoverle con -NICK

/help
Riporta la lista dei comandi disponibili. Dal momento che i clients tendono a prendere per sè questo comando, per farlo funzionare correttamente può essere necessario usare /quote help

/info [destinazione]
Restituisce informazioni sul server al quale si è collegati, è possibile specificarne un altro del network come parametro

/links [server] [mask]
Permette di vedere una lista di tutti i servers facenti parte del network. Si può specificare un server da cui far partire la richiesta di links, e una mask con la quale dovranno combaciare i servers per essere mostrati in lista

/lusers [* server]
Restituisce statistiche sull'uso dei servers, è possibile specificarne uno in particolare, facendolo precedere da un secondo parametro fittizio che è richiesto per motivi di retrocompatibilità

/motd [destinazione]
Riporta il Message Of The Day. E' possibile specificare un server per visualizzare un motd specifico

/ping dati
Richiede una risposta PONG al server, l'unico parametro è costituito da dati arbitrari

/pong dati
Deve essere inviato al server come risposta per un PING, il parametro è costituito da dati arbitrari

/silence [parametro]
Permette di gestire la lista silence. Qualunque nick o maschera posto in questa lista non potrà inviarvi messaggi privati o notices. Usandolo senza parametri, si può vedere la lista. Per aggiungere una mask, usare +MASK come parametro e -MASK per rimuoverle

/stats tipo [parametro]
Restituisce statistiche da un server. I tipi disponibili sono:

- i - riporta le I:lines configurate
- l - riporta statistiche sul server, se ne può specificare uno come parametro aggiuntivo (esempio: /stats l caltanet.azzurra.org )
- m - riporta statistiche sull'uso dei comandi
- n - riporta statistiche sulle connessioni utenti
- o - mostra le O:lines configurate
- p - mostra gli operatori IRC online
- u - riporta informazioni sull'uptime del server, è possibile specificarne uno come parametro aggiuntivo
- v - riporta i servers linkati a quello su cui ci si trova
- y - riporta le Y:lines configurate
- ? - riporta statistiche generiche, è possibile anche qui specificare un server preciso come parametro

/time [destinazione]
Restituisce l'orario locale del server, è possibile scegliere un server preciso specificandolo come parametro

/trace destinazione
Restituisce un routing trace fino al server di destinazione. Si può anche specificare un nick come destinazione, nel qual caso si otterranno informazioni sul nick e sulla sua classe di connessione

/user username * * realname
Viene utilizzato automaticamente dal client, in fase di connessione al server IRC

/userhost nick
Restituisce informazioni compatte su un nickname

/version [destinazione]
Riporta informazioni sulla versione del server sul quale si è connessi, o di un altro server se questo viene specificato come parametro

/watch [opzioni]
Permette di gestire la watch list, una lista dei nick preferiti organizzata dal server IRC. Usandolo senza parametro si può vedere la lista dei nick attualmente online, si possono aggiungere nick specificando +NICK come parametro, o -NICK per rimuoverli. Esistono anche altri parametri per la gestione della lista:

- c - cancella l'intera watch list
- s - mostra informazioni generali
- l - lista informazioni sui nick online
- L - lista informazioni su tutti i nick della lista

/who #canale
Riporta informazioni su tutti i nicknames presenti nel canale
Esistono anche funzioni di /who per ricerche di maschere e nicknames attraverso una serie di flags, ma queste sono disabilitate per l'utenza su Azzurra. A rigor di completezza le riporto, la sintassi è /who flag [parametro] e le flags (ossia i criteri di ricerca, inclusi con + ed esclusi con -) sono:

- a - l'utente è away
- C - mostra il primo canale visibile su cui si trova l'utente
- M - l'utente si trova su canali dove sono anch'io
- c - l'utente si trova nel canale specificato come parametro
- h - l'host dell'utente rientra nella mask specificata come parametro aggiuntivo (esempio: /who +h *.interbusiness.it )
- m - l'utente ha gli specifici modes impostati per il suo nick (i modes, da definire nel parametro aggiuntivo, possono essere 'o' 'a' o 'A')
- n - il nick dell'utente rientra nella mask specificata come parametro
- s - l'utente si trova sul server specificato come parametro
- u - l'username dell'utente rientra nella mask specificata come parametro

/whowas nick [max [destinazione]]
Riporta informazioni registrate sullo specifico nick (o lista di nick) quando questo era online, simili a quelle del whois. Se si specifica il parametro max, i dati saranno riportati per il numero massimo indicato di istanze passate del nick, si può interrogare infine un server specifico indicandolo nella destinazione

Spesso e volentieri i comandi di IRC e dei servizi chiedono come parametro una 'mask', e questo lascia interdetti coloro che non hanno dimestichezza al riguardo. Questo breve testo si propone di chiarire un po' le idee su cosa sia una mask e come possa essere usata per identificare un utente o una connessione.

IRC Masks

A ciascun utente su IRC è associata una mask, ossia un insieme di caratteri e numeri che caratterizzano la sua connessione al server.
Questa mask è visibile attraverso un certo numero di comandi, per esempio il whois. Dunque andiamo ad esaminare la maschera più nel dettaglio, richiedendo informazioni su un ipotetico nick 'pippo' con il comando /whois pippo.
Verrà fuori qualcosa di questo tipo:

pippo is carota@62.98.AzzurraNET-6D83EQ37
...
altre informazioni
...

La parte del whois che ci interessa è quella dove compare la mask (di solito una delle prime righe). La maschera è strutturata in tre parti:

nick!user@host

Come si può vedere un punto esclamativo separa il nick dall'user e una chiocciola separa l'user id dall'host. In particolare nel whois viene mostrata solo la parte user@host , senza il nick che del resto è là vicino. Quindi riprendendo l'esempio precedente, la mask completa sarebbe:
pippo!carota@62.98.AzzurraNET-6D83EQ37

Molto bene. Dunque come possiamo fare riferimento ad un utente attraverso il suo nick (quello che siamo abituati a fare), per determinati scopi può far comodo fare riferimento alla sua maschera o, meglio ancora, a parte di essa.

Prendiamo per esempio un classico comando in cui si adopera la mask, il ban. Per bannare possiamo usare /mode #canale +b NICK , ma questo metterà semplicemente un ban sul nick, nella forma nick!*@*
Cosa siano quegli asterischi che sostituiscono gli altri due campi vuoti lo vedremo dopo. In base a quanto detto prima, potremmo bannare utilizzando, invece che il nick, un'altra parte della maschera. Del resto un ban sul nick è piuttosto inefficace, visto che all'interessato basterà cambiare nick per rientrare sul canale.
Dunque ricaviamo la maschera del tizio (magari attraverso un whois) e usiamola per un ban. Immaginiamo che la mask sia sempre pippo!carota@62.98.AzzurraNET-6D83EQ37

Scriviamo /mode #canale +b *!*@62.98.AzzurraNET-6D83EQ37
Questo è un ban più interessante. E' bene a questo punto spiegare cosa siano quegli asterischi. Il carattere * un 'carattere jolly' e il significato è 'qualunque cosa sia scritta al mio posto'. Quindi, quel ban si può leggere così:

effettua l'operazione (in questo caso il ban) su:
qualunque nick e qualunque user id che abbia come host 62.98.AzzurraNET-6D83EQ37

E' facile immaginare che a questo punto al tizio non basterà cambiare nick per rientrare nel canale, visto che il ban è specificato con la * al posto del nick nella maschera, per cui il ban funziona su qualunque nick. Dovrà cambiarsi l'host, e questo nella migliore delle ipotesi significherà ricollegarsi ad internet, con tutti i disagi del caso (specie considerando che un ban si rimette in un attimo).

Analogamente potremmo mettere un ban di questo tipo:
/mode #canale +b *!carota@*

Se avete afferrato il concetto, avrete già interpretato in modo corretto nella vostra mente questo ban:

qualunque nick e qualunque host, che abbiano come userid carota

Immaginate cosa succederebbe mettendo un ban di questo tipo:
/mode #canale +b *!*@*

Beh, bisognerebbe avere delle ragioni particolari per mettere una cosa del genere:
in effetti il suo significato è 'tutto'. Qualunque nick, qualunque user id, qualunque host. Applicando una maschera simile ad un ban il suo effetto sarebbe tener fuori tutti gli utenti da un canale.
Verosimilmente usiamo una maschera di questo tipo quando vogliamo dare un beneficio a tutti: per esempio vogliamo che chiunque entri nel nostro canale sia messo come vop (in autovoice). Dopo aver disabilitato il controllo sull'ident di chanserv (questa però è un'altra storia), digitiamo il comando /cs vop #canale add *!*@*
A questo punto cosa il comando faccia dovrebbe essere chiaro: fa sì che qualunque nick, con qualunque user id e qualunque host venga considerato un vop e gli venga dato il voice (il + davanti al nick).

Non è detto che un carattere jolly debba prendersi per forza un intero campo della maschera tutto per sè.. ci si può divertire molto di più, vediamo qualche esempio...

/mode #canale +b pi*!*@* , questo ban viene attivato su tutti quelli che hanno un nick che comincia per pi (con qualunque user id e qualunque mask). Quindi sia pippo che pirata e pikachu saranno tenuti fuori da un ban di questo tipo.
/mode #canale +b *pi*!*@* , questo ban viene attivato su tutti quelli che hanno un nick che contiene pi (con qualunque user id e qualunque mask). Per esempio saranno tenuti fuori pippo, bepi, arpia.
/mode #canale +b *p*i*!*@* , questo ban viene attivato su tutti quelli che hanno un nick che contiene le lettere 'p' e 'i' , in quell'ordine ma non per forza attaccate (con qualunque user id e qualunque mask). Per esempio saranno tenuti fuori pippo, pamila, serpi.
/mode #canale +b pippo!*@*carota.it , questo ban viene attivato su tutti quelli che hanno il nick pippo E hanno l'host che finisce per carota.it
/mode #canale +b man?!*@* , qui usiamo l'altro carattere jolly a nostra disposizione, ossia ? . Mentre * voleva dire 'qualunque cosa (anche nulla) al mio posto' , il carattere ? vuol dire 'un solo carattere o numero al mio posto (e deve esserci per forza)'. Dunque questo ban funzionerà come sempre su qualunque user id e qualunque host, che abbiano come nick mano , mani, mant , man5, man] . NON funzionerà invece su man oppure su manto. Questo perché il simbolo ? chiede un solo carattere al suo posto , e lo chiede in modo obbligatorio.

I comandi visti sono relativi al ban, ma tutto il discorso è valido per definire un utente o un insieme di utenti coinvolti in un qualsiasi comando che permetta l'uso di una mask.

Fonte: http://members.ferrara.linux.it/xin/papers/irc/guida.html