2012-05-30 14 views
7

Sì, so che ftp è meglio di telnet, ma in questo momento sono bloccato con telnet. Posso già accedere, ecc. È solo che non riesco a ottenere un file. Googled per esso e mi ha dato questo: RETRutilizzando telnet per trasferire un file da/a server

220 ProFTPD 1.3.1 Server (ProFTPD) [64.170.98.33] 
USER anonymous 
331 Anonymous login ok, send complete email address as your password 
PASS [email protected] 
230 Anonymous access granted, restrictions apply 
CWD ietf/ftpext/ 
250 CWD command successful 
PASV 
227 Entering Passive Mode (64,170,98,33,151,31). 
RETR ftpext-charter.txt 
150 Opening ASCII mode data connection for ftpext-charter.txt (6060 bytes) 
226 Transfer complete 
QUIT 
221 Goodbye. 

Ora, come potete vedere, la persona qui utilizzato per accedere al file:

(http://www.webdigi.co.uk/blog/2009/ftp-using-raw-commands-and-telnet/ da). Tuttavia, quando lo faccio .. lo esegue e .. non fa nulla. Rimane solo lì .. Qualcuno sa come affrontare questo?

Grazie!

Edit: In questo momento sto provando a fare tutto bene usando telnet sulla mia macchina Windows, perché sono rimasto bloccato con il mio script. Sto provando a scrivere uno script sul mio server che semplicemente (automaticamente) estrae alcuni file da un altro server (usando netsock) in "background", su base giornaliera ... e senza interazione da nessuno.

screenie del RETR:

screenshot

+2

Che sta facendo FTP. Non telnet. – adarshr

+1

Se si desidera inviare file tramite telnet è possibile (non è così, però, si tratta di una sessione FTP che si sta guardando), ma è necessario organizzare per fare questo con alcuni tubi e il reindirizzamento di IO. Non è una domanda di programmazione anche se in entrambi i casi, a mio avviso. E tu saresti * molto * meglio usando ssh/scp per questo piuttosto che telnet. – Flexo

+0

E cosa ottieni? Hai uno screenshot di esso, inclusa la tua linea di comando telnet? –

risposta

5

Non è possibile utilizzare FTP Telnet. Ftp richiede un canale di comando e un canale di dati. È possibile utilizzare il canale comandi con Telnet ma non è possibile utilizzare il canale dati con Telnet. Il risultato è ciò che vedi. Ulteriori dettagli sono nel RFC Ftp: http://www.ietf.org/rfc/rfc959.txt

+0

Se si utilizza la modalità passiva, è possibile utilizzare il canale dati su un altro telnet. –

+0

Sì per leggere il contenuto del file binario nel terminale Telnet. L'unico modo utile per afferrare il contenuto del canale dati è l'uso di netcat: 'nc -n -l -p dataport> download'. Ma invece di installare netcat sarebbe * molto * più facile da usare * wget *, * curl *, * lftp * o il buon vecchio client standard * ftp *. – ceving

6

Se il sistema su cui si sta telneting ha installato Python su di esso (la maggior parte dei sistemi basati su Unix oggigiorno ha una versione di Python installata per impostazione predefinita), è possibile eseguire un ultra- semplice server Python HTTP, utilizzando questo comando:

$ python -m SimpleHTTPServer 

Assicurati di eseguirlo nella stessa directory in cui si trovano i file che desideri trasferire. Poi aprire qualsiasi browser web e puntarlo al medesimo indirizzo a cui si sta telnet-voce, esclusi utilizzando la porta 8000, ad esempio:

http://192.168.2.1:8000/ 

(basta sostituire l'indirizzo IP con l'indirizzo effettivo della macchina remota) . Questo caricherà un elenco dei file nel browser e potrai fare clic con il pulsante destro del mouse e salvare qualsiasi file desiderato.

Spero che questo aiuti!

+0

Grazie Jordan. Ho appena modificato la mia domanda iniziale per chiarire la mia situazione: voglio automatizzare un trasferimento di file, quindi ogni giorno (ad esempio) estrarrà un certo file da un altro server. Quindi non voglio dover aprire un browser o altro .. tutto deve succedere in fondo in fondo .. – Malachi

+1

Voglio solo aggiungere che in Python 3 è python -m http.server – pugnator

Problemi correlati