[PLUTO-help] reperire la posta con telnet: script bash
Gian Uberto Lauri
GianUberto.Lauri a eng.it
Mer 23 Ago 2006 11:57:28 CEST
>>>>> "ci" == casellaemail a email it <casellaemail a email.it> writes:
ci> Qui non usa telnet per comunicare col server, mi
Il segreto è tutto in questa riga:
# Apre socket TCP sul descrittore 3:
3<>/dev/tcp/$host/$port || exit 1
che peraltro richiede che ci sia il supporto per /dev/tcp, che se non
ricordo male era una primitiva interfaccia Unix System V versi il
TCP/IP alternativa ai socket del BSD. Ergo, non sempre c'è, visto che
usualmente si usano appubto i socket (ed il commmento è impreciso).
In particolare /dev/tcp/[host]/[port] rappresenta una connessione
TCP/IP verso un certo [host] su una determinata [port]a, ad esempio
per prendere la mia posta userei /dev/tcp/mail.eng.it/110 (se avessi
voluto il supporto per /dev/tcp) oppure potrei chiedere l'ora al ser-
ver time.nist.gov con:
cat < /dev/tcp/time.nist.gov/13
E con questo dovrei aver spiegato a cosa si accede in /dev, che
ricordo è la directory speciale in cui ci sono gli "pseudofile" che
mappano i dispositivi visti dal computer (vedi anche la pagina al-
l'URL: http://www.pluto.it/files/ildp/guide/abs/devproc.html)
Vediamo ora la testa e la coda del comando:
La prima redirige in lettura e scrittura ( <> ) il device che rap-
presenta la connessione sul descrittore 3 (0 è stdin, 1 strdout e 2
stderr).
La coda è un pelino più "criptica" ma è leggibile una volta letto
tutto man bash alla voce Liste (di cui si parla in modo meno completo
sulla pagina che hai indicato).
Se manca /dev/tcp puoi provare a creare due named pipe con
mknod ingresso p
mknod uscita p
e poi mandare in background netcat (facile da installare senza ricom-
pilare il kernel)
netcat [host] [port] < ingresso > uscita &
La cosa è un po' rozza e richiede un po' di lavoro, sopratutto per fare
terminare il netcat...
--
/\ ___
/___/\_|_|\_|__|___Gian Uberto Lauri_____
//--\| | \| | Integralista GNUslamico
\/ e coltivatore diretto di Software
More information about the pluto-help
mailing list