Compilare XChat in modo testo (xchat-text)

15 Novembre 2008

Dunque, come prima cosa bisogna procurarsi i sorgenti di XChat sul sito ufficiale.

Io do per scontato che stiate compilando su Linux; il sorgente da scaricare, per la versione corrente mentre scrivo è xchat-2.8.6.tar.bz2 .

Il pacchetto lo si decomprime con il comando:

tar xvjf xchat-2.8.6.tar.bz2

A questo punto bisogna, purtroppo, modificare un file sorgente del programma perché, a causa di un bug nel codice, la procedura di compilazione si interromperebbe con un errore. Andremo a modificare in modo “poco ortodosso”, nel senso che per fare una cosa pulita bisognerebbe operare diversamente, ma per non starci a complicare la vita più di quanto non sia già, procediamo come segue:

  • apriamo il file userlist.c con il nostro editor preferito; ad esempio gedit, il comando è questo:

gedit xchat-2.8.6/src/common/userlist.c

  • Andiamo alla riga 110 e la modifichiamo in modo che diventi:

// if (away)

(cioè aggiungiamo ‘//’ in testa)

  • Ripetiamo l’operazione anche per la riga successiva, la 111, in modo che diventi:

// fe_userlist_update (sess, user);

  • Ripetiamo la medesima operazione anche per la riga 142, che diventa identica a questa qui sopra.

Nel caso in cui la versione di XChat scaricata non sia la medesima è possibile che i numeri di riga non siano corretti o, addirittura, il problema sia già stato sistemato.

In altri termini, quello che si vuole fare, è “commentare” il codice che causa i problemi di compilazione, ovvero trasformare le righe che danno noie in righe di commento, così che il compilatore le ignori totalmente. A dare noia è la chiamata a funzione fe_userlist_update(), quindi uno deve fare una ricerca di questa funzione e aggiungere ‘//’ in testa. Purtroppo non sempre è sufficiente (vedi sopra), perché righe precedenti o successive potrebbero avere problemi a causa di questa modifica; in linea di massima, il compilatore dice quali righe danno il problema e, commentandole, si può risolvere l’inconveniente (non è detto che sia una cosa buona sempre e comunque, anzi, ma spesso funziona).

A questo punto salvare il file userlist.c e lanciare il comando di configurazione dei sorgenti; per non avere altre noie, ve ne propongo uno che, sulla mia macchina, ha funzionato perfettamente:

cd xchat-2.8.6

./configure –enable-textfe –disable-gtkfe –enable-openssl -enable-ipv6 –disable-nls –disable-threads –disable-rpath –disable-xlib –disable-python –disable-perl –disable-perl_old –disable-dbus –disable-mmx –disable-glibtest –disable-gtktest

Ora non resta che compilare con: make

Se tutto va a buon fin, nella directory src/fe-text/ si potrà trovare l’eseguibile xchat-text.

Nel caso in cui vada caricato su un sistema remoto è possibile ridurlo di ingombro con questo comando:

strip src/fe-text/xchat-text

La dimensione potrebbe ridursi ad 1/4 .

Con le opzioni usate sopra molte features sono disabilitate, come ad esempio gli script in perl; se interessa averli, può essere opportuno tentare di togliere le opzioni –disable-perl e –disable-perl_old .

iPhone VS Linux

18 Ottobre 2008

Pare che, dopo il lancio di iPod, Apple abbia ritrovato quel lustro di un tempo, anzi, diciamo proprio che la sua popolarità è letteralmente decollata: ormai anche chi di informatica sa poco e nulla, conosce il marchio della mela.

Personalmente ho sempre apprezzato il mondo Apple e, ultimamente, ho avuto modo di toccare con mano qualche “tecnocoso” realizzato da questa azienda, come ad esempio il MacBook Pro. Gran bell’oggetto, non c’è che dire.

Onestamente mi sono chiesto se, a parità di prezzo, non si riesca a trovare un’alternativa “PC-based” (anche se comunque i nuovi MAC sono sostanzialmente dei PC a tutti gli effetti, non montano più hardware “proprio”), magari con un bel pinguino sopra, ma è un altro discorso.

Trascinato dalla moda, un mio amico ha pensato bene di farsi un regalo e comprarsi un iPhone.

Si tratta di un telefono per modo di dire; di fatto sembra più un qualcosa che ci arriva dal futuro che non un cellulare e comunque le sue caratteristiche tecniche ne fanno un computer in tutto e per tutto, tant’è che il suo sistema operativo è fondamentalmente una miniatura del MacOS X, del quale riprende anche la grafica e condivide alcune applicazioni, prima fra tutte Safari, il noto Browser WEB della mela.

Non essendo particolarmente avvezzo al mondo dei computer (tutt’altro), il mio amico ha chiesto se gli davo una mano a capirne meglio il funzionamento e soprattutto se riuscivo a passargli qualche canzone. Già perché, come detto sopra, non fa solo da telefono, è anche un iPod a tutti gli effetti, ovvero consente di ascoltare musica e con una qualità sonora piuttosto elevata. Tra l’altro, considerando che il dispositivo ha una capacità totale di 8Gb (c’è anche un modello da 16Gb, ma diciamoci la verità: già riempire 8Gb di mp3 non è impresa da poco, salvo uno non voglia buttare dentro di ogni senza neanche sapere cos’ha, figuriamoci il doppio …).

Ecco, qui parte la mia crociata contro il famigerato mondo Apple e la sua legge, semplice e chiara: vuoi qualcosa ? bene, pagala

Non è neanche una legge malvagia, trovo giusto pagare per avere un servizio, un gadget, qualcosa, però, voglio dire: se ho speso fior di quattrini per un oggetto tecnologico all’avanguardia e quindi ne sono il legittimo possessore, posso anche aspettarmi di poterci fare un po’ quello che mi pare ?

Intendiamoci, per “fare un po’ quello che mi pare” intendo: trasferirci le mie canzoni preferite, installare un’applicazione fatta da pinkopallino che mi piace e fa quello che mi interessa, collegarlo al mio PC tramite un “qualche protocollo standard”, piuttosto che trasferire file (come ad esempio immagini) con altri cellulari via bluetoth, ecc…

Insomma, nulla di trascendentale, sono cose che io già faccio da anni con il mio “misero” Nokia 6111 e senza nessun problema (ci ho installato Opera, GoogleMaps, ecc….).

Bene, cioè, male, perché a quanto pare questo iPhone è TOTALMENTE BLINDATO.

Unica porta per poter scambiare dati con il dispositivo è iTunes, un software per la gestione di contenuti multimediali esclusivamente disponibile per le piattaforme MacOS X (dove è nativo) e Windows.

Su Linux non c’è verso di farlo andare, almeno, non in modo decoroso.

Con Wine proprio non c’è storia, salvo qualche vecchia versione, direi che quelle nuove sono fuori dalla portata (iTunes richiede Windows XP SP2).

Utilizzando un sistema di virtualizzazione, come può essere VMWare o VirtualBox, si riesce giusto ad installarlo e usarlo in forma “minimale”, ma diciamo che il grosso del suo scopo viene meno: non c’è verso di fargli vedere l’iPhone quando lo si collega via USB.

Per essere esatti, il sistema lo vede, ma va in crash !

Non ho ben capito dove sta l’inghippo, sembra che sia il driver USB di Linux che ha noie con il dispositivo e, di fatto, mal lo digerisce, rendendo impossibile instaurare una comunicazione decente; in giro ho trovato gente che ha usato una versione particolare di iTunes, vmware server, ecc… ed ha combinato qualcosa, ma con limitazioni e crash. Insomma, siamo ben lontani da una soluzione decorosa.

Qui trovate qualche info su VMWare in merito alla questione: http://communities.vmware.com/thread/91715?tstart=0&start=120

Ma quindi non c’è nessuna alternativa ad iTunes ?

Beh, diciamo che un’alternativa “pulita”, cioè senza ricorrere al “crack del dispositivo” (più avanti spiego di cosa si tratta) l’ho anche trovata, si tratta di comunicare attraverso il protocollo WebDav, ma tuttavia ha qualche “contro”, ovvero:

PRO:

  • Consente lo scambio dati con qualsiasi sistema supporti il protocollo WebDAV (Windows, MAC e Linux lo supportano)
  • Permette di aprire qualsiasi tipo di contenuto, dagli mp3, ai file pdf, immagini, ecc…
  • E’ piuttosto semplice da usare (praticamente uno vede il proprio iPhone come una “cartella”)
  • E’ un sistema molto veloce; a trasferire un mp3 da 5-6Mb ci vogliono una manciata di secondi, 2 o 3.

CONTRO:

  • E’ necessario installare su iPhone un’applicazione a pagamento (Air Sharing) e …
  • … per farlo occorre iTunes, quindi o si ha un Windows/Mac o bisogna chiedere un favore a qualche amico che lo ha, con tutti i problemi che ne conseguono (comprare l’applicazione tramite carta di credito, trasferire il tutto su iPhone senza “piallare” quello che già c’è, ecc….)
  • Il software in questione funziona esclusivamente via WI-FI; quindi se iPhone e il PC non sono entrambi nella stessa rete wi-fi, “nada, non si fa nulla” (anche se, tramite qualche stratagemma, ci si può riuscire) ma diciamo che laddove non c’è wi-fi, non si fa niente.
  • I dati trasferiti sull’iPhone tramite Air Sharing sono in una “apposita cartella”, separata da tutto il resto e a “compartimento stagno”, ovvero: gli eventuali mp3 che vado a caricare, non me li ritrovo sotto l’applicazione iPod. Sì, li posso ascoltare, ma perché è Air Sharing che, tramite il suo “file manager” apre i files che trasferisco con esso.

Una recensione di Air Sharing potete trovarla qui: http://www.ipodtouchitalia.com/accessori/air-sharing-per-ipodtouch-e-iphone/

Per quanto riguarda Linux, è necessario avere un kernel compilato con il supporto a CODA Filesystem o anche a FUSE (io per “non saper nè leggere nè scrivere, ho ricompilato il kernel abilitando entrambi). Dopodiché è sufficiente installare DAVFS2 e usare un browser/file manager come ad esempio Konqueror (anche Nautilus di Gnome dovrebbe andare) inserendo un indirizzo come questo: webdav://192.168.0.3:8080

Se sull’iPhone si è lanciata l’applicazione Air Sharing (essa stessa comunica, in basso, l’indirizzo da utilizzare per connettersi; addirittura fornisce una chiara guida in linea, pure in italiano, su come utilizzare l’applicazione, persino da parte degli utenti Linux, cosa molto apprezzabile) ed è attivo il logo della rete WI-FI (cioè è stata intercettata ed attivata la rete wi-fi), si accede al dispositivo come fosse una cartella, tutto qui !

Quella descritta sopra è la soluzione che definirei “legale”, ovvero, non si viola nessun contratto di licenza e non si va ad alterare iPhone in nessun modo (se non installando un’applicazione che è disponibile ed installabile proprio attraverso iTunes/AppleStore). L’alternativa “sporca” prevede invece il sostanziale crack del firmware dell’iPhone, operazione che in gergo pare si chiami jailbreak. Non sto qui a ripetere la procedura, perché su altri blog trovate la cosa descritta bene, questo è soltanto il primo che potete trovare facendo una ricerca su google: Jailbreak.

Io non l’ho provata, anche perché l’iPhone non è mio e comunque è ancora in garanzia ed, infine, al mio amico non frega granché dell’impossibilità di comunicare con il pinguino, anzi …

Però diciamo che, una volta applicata la “soluzione” (attenzione, perché a seconda del firmware installato, bisogna applicare la relativa modifica e non è detto che, se lo avete aggiornato, sia già uscita quella nuova ….), potrete installare quello che vi pare, non necessariamente da AppleStore. Ma non solo: c’è la possibilità di installare due pacchetti aggiuntivi chiamati “BSD Subsystem” e “OpenSSH” che consentono di connettersi al proprio iPhone via SSH e SFTP. Per l’SFTP si legge ovunque di un software per Windows chiamato WinSCP, tuttavia so che anche un analogo per Linux come gFTP supporta SFTP (Secure File Transfer Protocol, semplicemente una sigla che identifica un protocollo di trasferimento file su un canale sicuro), quindi non escludo possa funzionare.

Tramite questa soluzione “si narra” la possibilità di usare anche software come Amarok al posto di iTunes per sincronizzare la musica, tuttavia qualche utente ha manifestato problemi circa connessioni che cadono, ecc…

Ma ripeto, è tutta roba che non ho avuto modo di provare. Quello che sono riuscito ad usare effettivamente è Air Share (esistono comunque soluzioni analoghe, come Files) e posso affermare che funziona perfettamente. Dato che sul PC ho un server FTP, sarebbe stato interessante provare anche una soluzione come FTPOnTheGo , cioè un client FTP vero e proprio per iPhone, in modo da poter scaricare sul proprio dispositivo files di ogni tipo attraverso Internet e quindi non limitati dalla rete locale wi-fi (non confondiamoci: il wi-fi viene usato anche per scaricare tramite internet, ma mentre nel caso di FTPOnTheGo è l’iPhone a fare da “client”, con Air Share è il PC con il quale scambiamo i dati, in altri termini, con quest’ultimo l’iPhone è visibile solo alla rete locale, non a tutta internet - salvo il network non venga configurato opportunamente e non credo sia il caso, perché implica mettere mano alla configurazione di natting del router wireless - con i problemi che ne conseguono).

Per finire questa panoramica dell’iPhone (sì, lo so che è in commercio già da un pezzo, ma io soltanto ora ne ho visto uno e pare che non sono il solo, anzi ….) bisogna aggiungere l’assurda mancanza di certe possibilità che invece sono scontate su qualsiasi altro dispositivo (anche ben più datato), come ad esempio: impossibilità di creare filmati (fa solo foto … questa cosa è andata un po’ storta anche al mio amico, ma pazienza), non permette di inviare MMS (mah, non so quanti siano avvezzi ad usare MMS, io ho sempre e solo usato banali SMS e non ho mai avvertito la necessità di “messaggi multimediali”) e non consente di comunicare via bluetoth con altri cellulari. Sì, ecco, viene da chiedersi se il gioco vale la candela, dato che a prezzi probabilmente inferiori uno si può comprare un PDA che sostanzialmente fa le stesse cose (telefono, lettore mp3, navigatore satellitare, browser web, e-mail, ecc…) e anche qualcosa in più, ma più che altro la insopportabile limitazione di poter fare tutto solo ed esclusivamente tramite iTunes , che sarà pure semplice da usare, ma se solo penso che sincronizzando dal mio pc l’iPhone, l’amico in questione non può andare da nessun altro, pena perdere tutto quello che gli ho passato io e sostituirlo integralmente con quello che trova “sull’altro PC usato per sincronizzare”, mi vengono i brividi.

Qua parliamo di gente (Apple, in questo caso), che ha realizzato un sistema blindato esclusivamente teso a fare soldi e che schiaccia senza pietà qualsiasi barlume di libertà personale. Se poi aggiungiamo la scoperta che l’iPhone invia non meglio precisate informazioni alla casa madre e comunque alla possibilità della stessa di poter bloccare, in remoto, qualsiasi applicazione l’utente installi sul proprio dispositivo, ecco, mi vengono un po’ i brividi. Il fatto stesso che un sistema come Linux sia sostanzialmente boicottato (avete acquistato un iPhone, andate per collegarlo via USB al pinguino, non lo vede, iniziate a cercare se qualche anima pia ha realizzato qualche escamotage e vi accorgete che non c’è sostanzialmente nulla !), mi fa storcere ulteriormente il naso e mi spinge ad affermare che di simili dispositivi andrebbe evitato categoricamente l’acquisto.

Recupero Credenziali in Firefox

19 Gennaio 2008

Dato che spesso mi chiedono “ma BuDuS, come diavolo faccio a recuperare la password di un sito che Firefox non me la propone più e via e-mail non mi arriva ?“, ho pensato di scrivere questa piccola guida corredata da immagini.

Prima una piccola premessa: Firefox ricorda le credenziali usate su un sito (ormai tutti i siti richiedono un login, dai Forum a quelli di e-Commerce, chat e quant’altro) perché gli è stato detto di farlo (la prima volta che si inseriscono, lui chiede se si desidera rimangano memorizzate; se si è risposto di no, chiaramente non lo fa !) e le va a salvare in un suo database. Quando si torna sulla medesima pagina, lui la riconosce e compila in automatico i campi necessari, normalmente username e password.

Maledettamente può succedere che qualcosa cambi, dalla pagina stessa fino all’indirizzo alla quale è ospitata e chiaramente Firefox, non riconoscendola più, non compila i campi in automatico; è proprio in quel momento che l’utente inizia ad imprecare “ah, maledizione, non ricordo più username e soprattutto password !”.

Per recuperare queste informazioni senza avvalersi del servizio di smarrimento password offerto dal sito stesso (non sempre si hanno sufficienti informazioni o comunque il servizio è presente o, ancora, funzionante), si può procedere come segue:

  • Cliccare nel menu Modifica->Preferenze come mostrato in figura: Menu Modifica-Preferenze
  • Si apre la finestra di dialogo “Preferenze di Firefox“; questa finestra possiede varie sezioni, bisogna andare in quella relativa alla Sicurezza, come mostrato in figura: Preferenze di Firefox
  • Tramite il pulsante Mostra password… è possibile aprire una schermata come la seguente: Ricorda le password
  • Come mostrato in figura, la finestra presenta inizialmente 2 colonne, la prima con l’indirizzo del sito e la seconda con il relativo username utilizzato; per fare in modo che vengano visualizzate anche le password è necessario agire su Mostra password. Essendo una cosa potenzialmente rischiosa (se lo si fa in presenza di altre persone, queste potranno leggere le credenziali usate sui vari siti), Firefox chiede una conferma (successivamente è comunque possibile nasconderle nuovamente).

A questo punto non resta che individuare l’indirizzo del sito e segnarsi relativo username/password. Non sempre è un’operazione banale, soprattutto quando le informazioni memorizzate sono numerose, ma con un po’ di pazienza ….

Amministrazione Remota

18 Gennaio 2008

Probabilmente già molti li conoscono, ma magari qualcuno ignora l’esistenza di programmi che consentono di amministrare un computer in modo completamente remoto.

Per “amministrare in modo remoto” intendo la possibilità di prendere totale controllo di un PC raggiungibile via rete (sia essa una LAN .- cioè una rete di PC locale, come può essere quella domestico/aziendale - che Internet); ciò è possibile perché esistono programmi che inviano tutto ciò che viene digitato alla tastiera e tutti i movimenti del mouse - click compresi - al “PC distante” e fanno apparire sul proprio monitor - in una finestra o addirittura a tutto schermo, in modo da non avere nemmeno la percezione che si sta manovrano un altro PC, non quello proprio locale - ciò che “succede dall’altra parte”.

A seconda del tipo di connessione (ADSL è consigliata, ma funziona pure con le vecchie connessioni dette “dial-up”) è possibile ottenere prestazioni più o meno accettabili, anche in funzione (soprattutto) della risoluzione ed, in particolare, del numero di colori utilizzato (la cosa è configurabile).

Magari quando usiamo il PC utilizziamo quanti più colori possibili, tutti quelli che il sistema può sopportare, ma ecco che “trasferire via rete le immagini del proprio schermo in tempo reale” può risultare operazione piuttosto pesante e quindi, riducendo il numero dei colori visibili (in pratica le stesse cose si vedono “con meno sfumature”, un po’ più “grezze”), ecco che si va a ridurre conseguentemente il numero di informazioni da trasferire e le prestazioni del sistema aumentano (in realtà i colori vengono ridotti solo nel “visualizzatore”, non bisogna ridurli realmente sul PC amministrato).

A parte questa “pecca” del vedere le cose “colorate un po’ peggio” (cosa non necessaria, se la connessione lo permette, oppure, se si e’ disposti a perdere in reattività del sistema), è proprio come se si stesse utilizzando il PC direttamente …. solo che questi è distante

Esistono diversi programmi che consentono di fare questa cosa, ma uno di quelli che preferisco per semplicità e dimensioni (veramente esigue) è VNC .

Purtroppo pare che la versione per Windows Vista non sia gratuita; come valida ed analoga alternativa si può comunque rimediare con TightVNC che permette di fare le stesse cose.

Ma come funziona ?

Sul PC che si vuole controllare si va ad installare la “versione SERVER”, quella che in pratica consente agli altri PC di collegarsi e “vedere il proprio schermo”, nonché controllare l’intero PC, con le modalità descritte prima.
Sugli altri PC è sufficiente installare (anzi, non richiede nemmeno installazione, è un semplice file eseguibile di pochi Kbyte) il visualizzatore, che permette di collegarsi al “VNC SERVER” (cioè il PC da amministrare).

Di per se i programmi in questione sono semplicissimi da usare, unica cosa consigliatissima è configurare una buona password nel VNC SERVER al fine di impedire che chiunque “possa entrare nel sistema e fare bello e cattivo tempo !”.

I problemi nell’uso di questo sistema, a mio avviso, sono altri, cioè:

  1. Ottenere l’Indirizzo IP del VNC SERVER (il PC da amministrare). Per collegarsi, quando si apre il VNC VIEWER, è necessario avere l’indirizzo di rete del VNC SERVER. Questa informazione è facilmente ottenibile visitando appositi siti, come questo (esistono altri metodi, ma questo lo ritengo il più semplice).
  2. Gli utenti Fastweb fanno parte di una LAN, ovvero, è come se fossero tutti in un “ambito domestico”, non hanno proprio - salvo l’esborso di una consistente quota giornaliera - la possibilità di essere raggiunti da utenti non Fastweb, se non in modo molto tribolato (ex: VPN). Per risolvere il problema è però possibile lavorare in “modo opposto”, cioè si lancia il VNC VIEWER e lo si configura in “modalità ascolto” e dal PC che fa da VNC SERVER si effettua la chiamata all’indirizzo del primo (anche qui serve l’Indirizzo IP, ma lo si può sempre ottenere con il metodo 1, salvo che in questo caso occorrerà quello del PC dal quale si comanda, non quello comandato).

Purtroppo il “problema 2″ implica che sul PC server ci sia una persona che effettua l’operazione di “chiamata” al momento opportuno.

Un’altra cosa interessante è che sul PC che “deve controllare” non è indispensabile installare il VNC VIEWER, dato che, se opportunamente configurato, il VNC SERVER può essere reso accessibile anche tramite Browser (Internet Explorer, Firefox, Opera, ecc….), a patto che sia installato Java, semplicemente inserendo nella barra degli indirizzi - scusate il gioco di parole - l’indirizzo IP del VNC SERVER seguito dai “due punti” ( : ) e il numero di porta alla quale sta in ascolto (solitamente si tratta della porta 5800 o 5801); ad esempio, supponendo che l’indirizzo del VNC SERVER (ottenuto, ad esempio, con il metodo 1 mostrato sopra) sia 151.123.213.16 dovremo usare:

http://151.123.213.16:5800

Se tutto funziona come previsto, dovrebbe caricarsi un’applicazione Java che, dopo aver chiesto consenso ad essere eseguita, mostra una finestrella per il login e, se si forniscono le credenziali esatte, apre poi la finestra per il controllo remoto (identica a quella del VNC VIEWER).

Magari al “prossimo giro” spiego come si puo’ creare una sorta di VPN per gli utenti Fastweb usando un software che si chiama hamachi, il quale consente di superare il problema del punto “2″.

Se qualcosa non è chiaro, non esitate a chiedere, rispondo volentieri

Il Guardiano

18 Gennaio 2008

Avete mai sentito parlare di eMule e BitTorrent ?
Beh, sono solo i piu’ “attuali” programmi per la condivisione dei “contenuti” (dal multimediale fino alle applicazioni, il tutto piu’ o -soprattutto- meno legale).

Ebbene, forse non lo sapete, ma esistono associazioni come la RIAA ( Recording Industry Association of America) per quanto riguarda la musica e MPAA (Motion Picture Association of America ) che, di fatto, più o meno direttamente (cioè utilizzando anche apposite organizzazioni) vanno a “caccia” di quegli utenti che condividono contenuti protetti dal loro copyright.

Nell’ambiente del p2p ha fatto abbastanza scalpore il caso Peppermint dove alcune migliaia di utenti italiani hanno ricevuto una letterina dal legale della suddetta dove veniva intimato di cessare l’attività illegale e procedere al versamento di un “contributo per le spese legali” di qualche centinaio d’euro.

Ma anche solo dando un’occhiata a cosa sta succedendo ai nostri “cugini francesi” (cioe’ la proposta di una legge tesa a “segare” la connessione internet in modo più o meno definitivo a coloro che vengono beccati a condividere materiale illegale), per rendersi conto come più si va avanti e più la morsa delle major si fa stretta.

Ecco che, in un simile contesto, prendere le opportune contromisure per tempo può essere una cosa buona.

Una delle più efficaci che mi sento di consigliare è PeerGuardian e si tratta di un Firewall ad hoc, cioe’ un programma che impedisce ai programmi di condivisione utilizzati di collegarsi a quei “servers/utenti” che sono stati catalogati come “al soldo delle major discografiche al fine di intercettare i potenziali utenti fraudolenti”.
Questo programma, in pratica, scarica una lista di network bannati (una cosiddetta blacklist, lista nera) ed impedisce ai propri programmi di collegarsi ad indirizzi appartenenti a questa lista.

Ora, vi lascio immaginare che ad oggi questa lista consta di oltre 200.000 range di indirizzi IP bloccati. In parole piu’ semplici: nel momento in cui vi collegate per scaricare un mp3 o un film “abbastanza diffuso”, è garantito al 100% (e lo dice una ricerca americana effettuata da un’Università Californiana) che ci si collega anche ad uno di questi “network malefici” e quindi “si viene catalogati da essi”; che poi coloro che stanno dietro a questi network si prendano la briga di “passare alle vie di fatto” (legali) è tutt’altro discorso …. ma diciamo che pararsi un attimo mi sembra giusto, no ?

Alcuni programmi, come utorrent permettono poi di caricare direttamente questa lista di “indirizzi bannati”, che e’ attualmente scaricabile da qui (ben 14Mb !): http://emulepawcio.sourceforge.net/nieuwe_site/Ipfilter_fakes/ipfilter.dat



Di già che ci sono, scrivo 2 righe per gli utenti che ancora (come me) utilizzano un programma “poco conosciuto” e che ancora utilizza il network OpenNap, sto parlando di Lopster .
Ebbene, ha si la possibilità di inserire range di indirizzi IP da bloccare, ma solo manualmente !!!
Tra l’altro, il formatu utilizzato per salvare questo database della blacklist non è compatibile con ipfilter.dat , il file citato sopra.
In pratica ipfilter.dat utilizza direttamente una notazione come la seguente:

1.2.3.4-5.6.7.8


dove è presente un indirizzo IP nel formato classico x.x.x.x che va da uno iniziale ad uno finale, separato da un trattino ‘-’.
Lopster invece usa una cosa di questo tipo:

16909060 84281096

ovvero numeri interi senza segno.
Dato che ipfilter.dat è un file enorme, con oltre 200.000 righe come quella sopra è chiaro che una “conversione manuale” è proibitiva. Ho quindi pensato di fare un semplice programmino in linguaggio C che consente di fare la conversione in modo rapidissimo. Chi utilizza un sistema Linux (o compatibile) puo’ procedere come segue:

  • Apre un terminale ed entra nella directory di lopster nella propria HOME (cd .lopster)
  • Con un qualsiasi editor di testo crea un file di nome ipfilter2lopster.c e dentro ci salva le seguenti istruzioni:

#include
#include
#include

#include
#include

int main (int argc, char **argv) {
char sBuffer[1024];
char *psEndRecord = 0;
FILE *fInput = 0;
FILE *fOutput = 0;

unsigned int iFirstStart = 0;
unsigned int iSecondStart = 0;
unsigned int iThirdStart = 0;
unsigned int iFourthStart = 0;

unsigned int iFirstEnd = 0;
unsigned int iSecondEnd = 0;
unsigned int iThirdEnd = 0;
unsigned int iFourthEnd = 0;

unsigned int iStartIP = 0;
unsigned int iEndIP = 0;

int iConversion = 0;
int iTrash = 0;
int iLineNumber = 0;

if (argc < 2) {
printf(”Errore, parametri insufficienti: specificare il nome del file da importare.\n”);
return 1;
}

memset(sBuffer, ‘\0′, 1024);

fInput = fopen(argv[1], “r”);
if (fInput) {
fOutput = fopen(”bannetworks.list”, “w”);
if (fOutput) {
while (fgets(sBuffer, 1023, fInput)) {
++iLineNumber;
psEndRecord = strchr(sBuffer, ‘,’);
if (psEndRecord)
psEndRecord[0] = ‘\0′;

iConversion = sscanf(sBuffer,
“%3d.%3d.%3d.%3d-%3d.%3d.%3d.%3d,”,
&iFirstStart,
&iSecondStart,
&iThirdStart,
&iFourthStart,
&iFirstEnd,
&iSecondEnd,
&iThirdEnd,
&iFourthEnd,
&iTrash);
if (iConversion == 8) {
iStartIP = (((unsigned int)(iFirstStart)) * pow(256, 3)) + (((unsigned int)(iSecondStart)) * pow(256, 2)) + (((unsigned int)(iThirdStart)) * 256) + (((unsigned int)(iFourthStart)));
iEndIP = (((unsigned int)(iFirstEnd)) * pow(256, 3)) + (((unsigned int)(iSecondEnd)) * pow(256, 2)) + (((unsigned int)(iThirdEnd)) * 256) + (((unsigned int)(iFourthEnd)));

fprintf(fOutput, “%u %u\n”, iStartIP, iEndIP);
} else {
printf(”Riga %d del file %s non convertita (%s).\n”, iLineNumber, argv[1], sBuffer);
}
}
fclose(fInput);
fclose(fOutput);

return 0;
} else {
printf(”Errore, impossibile aprire il file \”bannetworks.list\” (%s).\n”,
strerror(errno));
}
} else {
printf(”Errore, impossibile aprire il file \”%s\” (%s).\n”,
argv[1],
strerror(errno));
}

return 1;
}

  • Dopo averlo salvato, crea il programma (in gergo: compila il sorgente) tramite questo comando:

gcc -o ipfilter2lopster ipfilter2lopster.c

  • Se non escono errori, ci si dovrebbe ritrovare con un programma pronto all’uso, che si utilizza dando il seguente comando:

./ipfilter2lopster ipfilter.dat

Lanciandolo il programma aprirà il file ipfilter.dat (che chiaramente deve già essere stato scaricato e collocato nella medesima directory … al limite uno, nel comando sopra, può fornire il percorso completo a dove lo si è salvato) e andrà a convertirne tutti i records per poi salvarli nel file di Lopster che si chiama bannetworks.list .

A questo punto uno lancia Lopster (se era aperto, lo chiude e lo riapre) e ne attende il caricamento; dico subito che per caricare il file bannetworks.list possono occorrere anche MINUTI (è realmente impressionante il quantitativo di network “trappola”), quindi non spaventatevi se questo rimane “bloccato” parecchio tempo.

Importare una ServerList WinMX in Lopster

18 Gennaio 2008

Se qualcuno ha tentato di importare una lista dei server WinMX in Lopster su Linux si sarà probabilmente scontrato con un crash del programma

Io ad esempio ho scaricato una lista da http://www.winmxitalia.it/server.htm e ho dovuto convertire il file da terminale con questo comando:

cat www.winmxitalia.it\ -\ ServerList\ -\ xtutti\ F2.wsx\
| sed s/\<.*\>// | grep “^\(N:\|A:\)” > winmx.wsx

Importando in Lopster il file winmx.wsx non ho avuto nessun problema e la lista è stata caricata perfettamente

Un torrente di bit

17 Gennaio 2008

Penso che difficilmente non abbiate mai utilizzato un “famigerato” programma di file sharing, cioè uno di quesi software che permettono di condividere files con altri utenti della rete, ad esempio partendo dal mitico Napster e magari passando per il famoso WinMX, per poi finire al moderno eMule.
Tutti questi programmi hanno in comune lo scopo di condividere files soprattutto di tipo multimediale, come ad esempio quelli musicali (mp3) e i video (avi, mpg, wmv, ecc…).

Tuttavia, visto il loro scopo, sono sostanzialmente da sempre sfruttati per “scambiarsi files illegalmente” e, recentemente (ma non troppo), sono quindi stati presi di mira dalle varie multinazionali dell’intrattenimento (direi con la R.I.I.A. in testa) al fine di eliminare o almeno ostacolare fortemente questo genere di pratica, andando prima a “tagliare le gambe” direttamente a chi produce il software (vedi appunto Napster) e poi a “minacciare” gli utenti finali, cioè coloro che effettivamente utilizzano questi network …. cioè “noi” !

E’ infatti di qualche mese fa (parliamo di Marzo) la notizia che una società discografica tedesca (Peppermint) è riuscita, tramite il Tribunale di Roma, ad ottenere da Telecom Italia i nominativi di quasi 4000 utenti dei quali, tramite un’opportuna società di sicurezza svizzera, aveva individuato l’indirizzo IP (sostanzialmente un numero che identifica in modo univoco ogni utente che si collega ad Internet, fornito in modo fisso o variabile - rispettivamente statico o dinamico - dal proprio provider internet, ad esempio Libero) di utenti che avevano condiviso files protetti dal suo copyright.

Tramite l’indirizzo IP è possibile risalire all’identità di un utente tramite i tabulati Telecom. Questi “4000 poveracci” si sono visti recapitare una diffida dall’ufficio legale della sopracitata che invitava, oltre ad eliminare i files di sua proprietà messi in condivisione abusivamente, anche al versamento di una cifra di alcune centinaia di euro (mi sembra di aver letto sui € 300) a scopo di risarcimento delle spese legali.

Anche se effettivamente la “causa legale” (non so se effettivamente siano poi arrivati in tribunale con qualche utente che ha deciso di “non pagare”, ammesso ce ne siano stati, perché poi sono subentrate varie figure, associazioni dei consumatori in testa, ma anche politici, ecc…) ha toccato il software che voglio qui proporre e che si differenzia abbastanza, sia come funzionamento ma anche come scopo da quelli citati sopra, sono dell’idea che comunque si tratti di uno strumento che vale la pena dotarsi e provare quando si ha necessità di scaricare files di grosse dimensioni.

Sto parlando di BitTorrent .

A differenza degli altri, è stato pensato per agevolare il download di grossi file (o comunque più files che fanno parte di un unico “pacchetto”), in modo da ottimizzare la distribuzione degli stessi senza sfruttare un programma di ricerca specifico ma basandosi attraverso semplici link su siti WEB.

Ad esempio immaginate di dover distribuire un file di notevoli dimensioni, come potrebbe essere un film (che arrivano facilmente ad 1Gb - sia ben chiaro che non sto parlando necessariamente di “un file illegale”, anzi, il sistema viene usato soprattutto per distribuire contenuti perfettamente legali e più avanti ne citerò uno in particolare); ebbene, se abbiamo un sito e ci mettiamo un bel link a questo file, ecco che tutti gli utenti interessati, arrivando sulla pagina, lo scaricheranno “come si fa di solito” (tasto destro, salva come …. ecc…).

Ciò però significa che, se a scaricarlo sono in decine o addirittura centinaia, potremmo saturare in fretta la banda a disposizione (propria se il sito lo ospitiamo “sul nostro PC - cosa fattibilissima - o “altrui” se è collocato su un qualche fornitore di questo tipo di servizi, noti come WEB Hosting o Housing a seconda della tipologia, che comunque danno sempre un limite che varia “da quanto si paga” ) e molti rimarrebbero “a bocca asciutta”.

Se però, anziché prelevarlo solamente, gli stessi utenti che scaricano lo inviassero anche agli altri utenti che, contemporaneamente, stanno scaricando, ecco che le cose cambierebbero molto: di fatto otterremmo un “turbinio di dati” che vengono ricevuti dalla “locazione principale” (che in gergo viene definito seme) e ricevuti ed inviati dagli altri utenti, dato che il file (o i files) vengono spezzettati opportunamente e gestiti in modo da rendere questo torrente di bit quanto più omogeneo possibile (così, ad esempio, da evitare che qualcuno “faccia il furbo” limitando la banda in uscita, perché la velocità e comunque il completamento del download dipenderà proprio da quanto velocemente invia agli altri utenti) perché va ad ottimizzare la banda sfruttando sia la capacità in ingresso sia quella in uscita di una connessione internet.

Tutto ciò si traduce in prestazioni piuttosto interessanti, che sono tanto maggiori quanto maggiore è la propria banda in uscita a disposizione (chiaramente influisce anche quella in entrata).

Una delle pecche di questo sistema è forse dato dalla mancanza di un “motore di ricerca” vero e proprio, di quelli che solitamente sono presenti nei programmi citati sopra anche se comunque, ultimamente, si stanno affacciando anche dei software che risolvono il problema e comunque i siti dai quali si possono scaricare i torrent, così si chiamano i files che consentono di effettuare il download, offrono sempre la possibilità di effettuare ricerche tant’è che sullo stesso Google si possono fare a patto che si aggiunga ” .torrent” alla fine.
Infatti il file .torrent serve al programma che poi si incarica di effettuare il download di mettersi in contatto con “il seme principale” che viene comunicato dal “vigile” (detto traker, cioè il server principale che coordina il tutto) che, a sua volta, fornirà gli indirizzi degli altri utenti con i quali dovrà comunicare per lo scambio e che avrà anche il compito di ottimizzare il bilanciamento del trasferimento.

Questo modo di operare, come dicevo prima, ha fatto si che il sistema sia stato adottato soprattutto per divulgare opere multimediali e soprattutto software legale.

Ho voluto trattare questo argomento in questo “articolo” allo scopo di far conoscere tale strumento, dato che sarà molto utile per ciò che voglio trattare nel prossimo, ovvero, i computer virtuali ; sarà infatti necessario, per chi desidera approfondire quest’ultimo argomento, scaricare dei file che possono raggiungere anche le centinaia di megabyte e credo sia molto utile poterli scaricare attraverso uno strumento che consente di effettuare l’operazione con una certa velocità (chiaramente dipende tutto dalle prestazioni della propria connessione, ma il sistema di per sè garantisce il massimo sfruttamento della stessa).

Per chi utilizza Windows penso che uno dei client più validi sia rappresentato da utorrent (la u in realtà sta per il simbolo “nano”, dato che il programma si chiama nanotorrent). Sarà sufficiente installarlo e, quando su un sito WEB si fa click su un file .torrent, esso verrà lanciato in automatico e, dopo aver chiesto dove si intende salvare ciò che si desidera scaricare, farà tutto il resto autonomamente.

A livello di pinguino io mi sono sempre trovato bene proprio con il client testuale bittorrent e personalizzandomi il tutto con un semplice file script che invoco da Firefox; in pratica mi sono creato un file di nome btfirefox contenente queste 2 righe:

#!/bin/sh
xterm -e /usr/bin/bittorrent-curses –max_upload_rate 16 –max_uploads 2 –save_in $HOME/download “$*”

Associando i files .torrent a questo file script (reso eseguibile con “chmod +x btfirefox” e salvato in una directory bin presente nel proprio PATH di ricerca) ottengo che quando clicco su un link di file torrent mi si apre in automatico la finestrella del client e mi va a salvare tutto in un’apposita directory download che mi sono creato.

Prima di utilizzarlo - e questo vale sia su Windows che su Linux, ma comunque sono disponibili client anche per Mac - è tuttavia necessario verificare che le porte dalla 6881 alla 6889 siano aperte; ciò significa, nella pratica, controllare che l’eventuale Firewall attivo non chiuda queste porte per quanto riguarda il protocollo TCP; se il proprio PC si collega ad Internet attraverso un router (situazione frequente negli uffici dove ci sono più PC che condividono la medesima connessione tramite un modem/router) è necessario fare il port forwarding delle suddette porte (ciò però significa che si potrà associare le 9 porte disponibili ad un massimo di 9 PC, anche se però le ultime versioni dei client bittorrent consentono di usare un intervallo più elevato e c’è quindi modo di districarsi).
Mi rendo conto che queste ultime righe potrebbero essere un po’ arabo per chi non mastica molto di questi argomenti e, oltre a rendermi disponibile a rispondere ad eventuali quesiti, invito alla lettura di questo post sul forum di P2P.

BitTorrent viene attualmente utilizzato da molti siti per distribuire materiale molto voluminoso; ad esempio tutte (o quasi) le Distribuzioni Linux consentono ai proprio utenti di effettuare il download attraverso questo strumento; considerando che è un genere di dati molto scaricato, risultano evidenti i benefici che si ottengono alla luce delle caratteristiche che ho espresso sopra.

La grande differenza, rispetto agli altri software di condivisione, sta proprio qui: i primi consentono di condividere una o più cartelle con gli altri utenti e, chi si collega al network, trova come “un grande disco” dal quale scaricare ciò che gli interessa, mentre nel caso di BitTorrent abbiamo una sorta di “classico download” da un sito, solo che questo non viene gestito direttamente dal programma che si usa per navigare (Browser, ad esempio Internet Explorer, Firefox, Opera, Safari, ecc…) ma da un apposito programma che si mette in comunicazione anche con gli altri utenti che stanno effettuando lo scaricamento.

In effetti BitTorrent più che “per condividere” (cosa fattibile, ma solo dopo un certo iter non proprio banalissimo) aiuta soprattutto nel download dai siti che propongono materiale molto voluminoso e, chiaramente, hanno previsto la possibilità di prelevarlo tramite questo strumento (in genere è chiaramente evidenziata la possibilità di scaricare, oltre che con i “mezzi tradizionali”, anche tramite BitTorrent).

Come dicevo prima, questo sistema sarà utile se si vorrà sperimentare il prossimo argomento che intendo trattare, le cosiddette Macchine Virtuali (Virtual Machine, in gergo chiamate VM), perché sarà necessario effettuare il download di software e pacchetti abbastanza pesantucci e BitTorrent agevolerà molto la cosa.

Si è schiuso un uovo !

17 Gennaio 2008

Che dire, nonostante la pratica di “farsi il blog” sia ormai in voga da parecchio tempo - pare sia nato nel 1997 in America e sia diventato “di moda” pure qua in Italia solo verso il 2001 -, non ho mai avuto nè la necessità nè lo stimolo a crearne uno, probabilmente perché gli ho sempre preferito il Forum (accidenti che fortuna, vado per linkare il “mio forum” e mi accorgo che è down … partiamo bene ).

Non so ancora bene cosa metterò in questo nuovo “spazio”, o meglio, so che tratterò principalmente di informatica - purtroppo è l’unica passione che ho della quale mi sento un minimo ferrato - ma su quali tematiche specifiche non ho ancora un’idea precisa.

Immagino che tratterò soprattutto di quello che mastico maggiormente:

  • IRC
  • Linguaggi di Programmazione (C in primis) o quello che ci gira attorno.
  • Sistemi Operativi (chiaramente pinguino in testa )
  • Gaming (non sono propriamente un “giocatore incallito”, tutt’altro, ma ogni tanto mi faccio prendere da qualche gioco, rigorosamente on-line, un po’ particolare)

Spero insomma di riuscire a produrre qualcosa di decente e soprattutto utile, così che questo non sia un mero spazio che “insegue una moda” ma diventi effettivamente un diario di cose interessanti