Abbiamo già visto quanto sia facile condividere localmente un file, tra due dispositivi qualunque, collegati alla stessa rete, con Snapdrop. Durante l'utilizzo di questo però mi sono accorto che in caso di trasferimento di una medio-grande quantità di file qualcosa si inceppa e il trasferimento dei file viene interrotto oppure alcuni file si perdono e non vengono trasferiti. Inoltre, anche se il trasferimento dei file avviene localmente, per raggiungere il sito di Snapdrop è necessaria una connessione internet. Per tanto ho cercato un'alternativa più stabile, che funzionasse localmente (e senza internet); in caso di Android, già la conoscevo, ma come fare ad esempio, con i dispositivi con la "mela morsicata", belli e funzionali ma estremamente limitati dal loro stesso ecosistema (tutto bene se hai un Mac, benino se hai Windows, ma con Linux... )? Qrcp è la pratica risposta che cercavo. Trattasi di una piccola utilità da riga di comando, open source, disponibile per tutti i principali sistemi operativi e, poiché non richiede di installare nessuna controparte, compatibile con qualunque smartphone o tablet che abbia una fotocamera e un browser.
Anche in questo caso, come nel caso del server FTP e di Snapdrop, prerequisito fondamentale per poter utilizzare qrcp è una connessione condivisa tra i dispositivi (pc e smartphone) tra cui vogliamo scambiare i file. Se non avessimo disponibile un access point comune, possiamo benissimo utilizzare la funzione di hotspot presente sia su Android che iOS.
» Leggi: Come connettere ad internet il computer attraverso lo smartphone [Android-iOS][Windows-Mac-Linux]
La connessione è necessaria perché questo fantastico programma, di poco meno di 10 MB, quando lanciato, avvia un server che rimane in attesa di connessioni, al tempo stesso genera un codice QR che contiene il link per accedere al server tramite browser. È sufficiente scansione il codice QR con il nostro smartphone e aprire il link per inviare o ricevere i file, ma andiamo con ordine, vedremo poi in dettaglio ogni operazione.
Vediamo subito come si possibile installarlo su tutti i principali sistemi operativi: su Windows è disponibile tramite Scoop e possiamo installarlo con il comando
scoop install qrcp
e su MacOS è disponibile tramite Homebrew, il comando per installarlo è
brew install qrcp
» Leggi: Scoop: il package manager per Windows!
» Leggi: Guida a Homebrew: il gestore pacchetti mancanti per MacOS
Mentre su Linux, non essendo generalmente presente nei repository delle distribuzioni, va installato manualmente, ma non disperate: non è necessaria la compilazione da sorgente!! L'autore propone infatti un file eseguibile già compilato per le diverse architetture dei processori (arm64, armv7, i386 e x86_64) e "impacchettato", sia come .deb sia come .rpm per farlo elaborare dal gestori pacchetti proprio della nostra distro preferita. È presente inoltre anche il pacchetto generico con estensione .tar.gx che si può installare su ogni distro Linux, indipendentemente dal gestori pacchetti (o anche su Android con Termux!!). In questa guida, vedremo l'installazione generica ma, se preferite l'installazione con il pacchetto dedicato alla vostra distro, potete seguire la procedura descritta sul Github.
Andiamo sulla pagina Release del progetto e scarichiamo la versione .tar.gz per l'architettura del nostro sistema operativo (se avete dei dubbi, potete verificare seguendo la guida qui sotto)
A questo punto dobbiamo aprire un terminale, portiamoci al percorso che contiene il file appena scaricato e scompattiamolo. Per praticità e nel rispetto del Filesystem Hierarchy Standard scompatteremo il file nel percorso /usr/local/bin; il comando da impartire è
sudo tar xzvf qrcp_0.8.4_linux_x86_64.tar.gz -C /usr/local/bin/
Adesso dobbiamo assegnare i permessi di esecuzione al file qrcp con il comando:
sudo chmod +x /usr/local/bin/qrcp
Bene: siamo pronti ad utilizzare qrcp! Per cominciare digitiamo nel terminale qrcp help
per avere una piccola guida sul funzionamento. Tra i vari comandi disponibili, oltre a receive
e send
(che vedremo in dettaglio più avanti e che servono rispettivamente per ricevere e spedire file) possiamo notare config
che serve per configurare qrcp
La configurazione è necessaria se vogliamo utilizzare qrcp sempre sulla stessa rete, ad esempio quella di casa, perché ci evita di dovere specificare ogni volta l'interfaccia di rete e la porta dove vogliamo che il server di qrcp rimanga in ascolto per una connessione. Avviamo la semplice configurazione con il comando qrcp config
Ci verranno poste 9 domande, vediamole brevemente:
- la prima ci consentirà di scegliere l'interfaccia di rete dove il server di qrcp deve rimanere in ascolto e sarà meglio scegliere solamente l'interfaccia di rete locale e non any, altrimenti il nostro server rimarrà in attesa anche delle connessioni provenienti da internet!
- la seconda ci consente di impostare un nome di dominio per il nostro server; se non verrà impostato sarà presente l'indirizzo IP del nostro computer e questa sarà la giusta scelta da fare per evitare errori di connessione dovuti ai DNS;
- la terza ci consente di impostare la porta di ascolto del server. Se non verrà espressa nessuna preferenza, qrcp sceglierà casualmente una porta ma questo potrebbe portare a qualche inconveniente nel funzionamento dovuto a firewall attivi su uno dei disositivi;
- la quarta è opzionale e ci consente di indicare una cartella per i file ricevuti, per comodità potremo scegliere Download o Scaricati ma potete indicarne una a piacere;
- con la quinta potremo indicare un nome predefinito per il percorso virtuale assegnato dal server ai file inviati o ricevuti, se non impostato verrà generato un nome random;
- sesta: dovremo indicare se il server avviato da qrcp dovrà rimanere attivo anche dopo il trasferimento dei file. Se non prevedete di fare numerose sessioni di trasferimento file, sarà meglio scegliere No, in modo da fermare il server appena terminato il trasferimento;
- le ultime 3, serviranno solo in caso volessimo utilizzare una connessione sicura HTTPS per il trasferimento dei file. Se utilizziamo la connessione di casa (che dovrebbe essere già sicura... ) e per un utilizzo saltuario, possiamo anche non configurare la connessione sicura. Viceversa se prevedete di trasferire file su WiFi pubblici, l'HTTPS non è una opzione ma diventa una necessità: in questo caso possiamo seguire la guida dello stesso autore di qrcp per abilitarla.
Alla fine ci verrà mostrato il file contenente la configurazione appena fatta. Se volessimo cambiarla, possiamo lanciare di nuovo la procedura di configurazione oppure andare ad editare il file ~/.config/qrcp/qrcp.json
.
Adesso che abbiamo configurato tutto a dovere, proviamo ad inviare un file al nostro smartphone; il comando da utilizzare sarà
qrcp send nomefile.ext
Possiamo inquadrare il codice QR generato per aprire il link direttamente sul browser; per i meno pigri è possibile inserire manualmente l'indirizzo completo nel browser che sarà tipo http://192.168.1.2:8080/send/abcd.
Una volta caricato il link, se il file che abbiamo inviato è gestibile dal browser del nostro telefono (ad esempio: una immagine, un file di testo, un pdf, ... ), questo sarà visualizzato e sarà possibile salvarlo in locale come di consueto; se invece il file inviato non è interpretabile dal browser, verrà scaricato direttamente.
Naturalmente è possibile inviare due o più file contemporaneamente; in questo caso qrcp genererà un file zip contenente i file indicati per essere inviati
Per ricevere i file, cioè trasferirli dal telefono al computer dove è installato qrcp, il comando sarà semplicemente
qrcp receive
L'output del comando sarà simile a quello già visto: un codice QR che contiene l'indirizzo del server avviato da qrcp. Scansioniamolo con lo smartphone (o inseriamo a mano l'indirizzo) e avremo accesso ad una semplice pagina web contenete il logo di qrcp, un tasto per permettere la scelta dei file (Browse...
) da inviare al computer e un altro grande tasto per conferma l'invio dei file dopo che li avremo scelti (Transfer
).
I più attenti avranno notato che è presente anche una casella a fianco della scritta Show text options
: se selezionata mostrerà due campi (Title
e Text
) dove poter inserire del testo. Questa funzione consente di generare un file di testo, a cui possiamo assegnare un nome compilando il campo Title
, contenente il testo inserito nel campo Text
, appunto.