Il gioco delle azioni positive                   Quando si seppe che negli Stati Uniti era stata realizzata la "macchina
della verita'", quale efficiente mezzo negli interrogatori dei sospettati,
il celebre commissario Massu, che in Francia fu a lungo l'abilissimo capo
della brigata anticrimine, commento': "Nel mio ufficio io ho avuto per
anni, di fronte alla scrivania, una grande poltrona fabbricata nell'800:
vi facevo sedere sempre il mio uomo e, ogni volta che lui mentiva, la
poltrona cigolava. E' un sistema che non ha mai fallito".
-- La Settimana Enigmistica
 

La device tcp di Bash


Due comandi molto utilizzati per scaricare dei file da Internet sono curl e wget.

Ad esempio, se vogliamo scaricare la home page di Google con curl, digiteremo


curl www.google.com


ed otterremo la pagina sullo standard output.

Stessa cosa si può fare con wget utilizzando il comando


wget -O - www.google.com


Anche il questo caso la pagina sarà mostrata sullo standard output (con wget togliendo -O -, l’output sarà salvato su index.html).

Non molti sanno che la stessa cosa si può fare utilizzando le estensioni tcp della bash. Il primo passo per ottenere tale scopo è digitare il seguente comando:


exec 5<>/dev/tcp/www.google.com/80


Con esso si istruisce la bash ad aprire sia in input che in output il descrittore di file numero 5 sull’indirizzo tcp www.google.com alla porta 80.

Il passo successivo è chiedere la pagina da scaricare, in questo caso la home page (/).


echo -e "GET / HTTP/1.0\n" >&5


Si noti che questa richiesta va fatta inviando l’apposito comando GET al descrittore prima aperto.

Sempre utilizzando il descrittore si riceve la pagina in risposta dal server con


cat <&5


Sullo standard output sarà visualizzata a questo punto la pagina richiesta. Non ci resta adesso che chiudere il descrittore con


exec 5<&-


Probabilmente si tratta più di un esercizio teorico che di una reale necessità ma è interessante sapere che la bash è un ambiente davvero completo ed autosufficiente.




© Mialan 2001 - 2026