[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