2012-05-30 48 views
7

Sí, sé que ftp es mejor que telnet, pero ahora estoy atascado con telnet. Ya puedo iniciar sesión, etc. Es solo que no puedo obtener un archivo. He buscado en Google por ella y me dio esto: RETRusando telnet para transferir un archivo desde/al servidor

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. 

Ahora bien, como se puede ver, la persona usa aquí para obtener el archivo:

(http://www.webdigi.co.uk/blog/2009/ftp-using-raw-commands-and-telnet/ de). Sin embargo, cuando hago eso ... simplemente lo ejecuta ... y ... no hace nada. Simplemente se queda allí ... ¿Alguien sabe cómo abordar esto?

Gracias!

Editar: En este momento estoy tratando de hacer las cosas bien utilizando telnet en mi máquina de Windows, porque me quedé atrapado con mi script. Intento escribir un script en mi servidor que simplemente (automáticamente) extrae algunos archivos de otro servidor (usando netsock) en "el fondo", todos los días ... y sin interacción de nadie.

screenie del RETR:

screenshot

+2

Eso está haciendo FTP. No telnet – adarshr

+1

Si desea enviar archivos a través de telnet puede (aunque no es así, se trata de una sesión de FTP que está viendo) pero deberá hacer los arreglos para hacerlo con algunas canalizaciones y la redirección de IO. Sin embargo, no es una cuestión de programación de ninguna manera en mi opinión. Y estarías * mucho * mejor usando ssh/scp para ello que telnet de todos modos. – Flexo

+0

¿Y qué obtienes? ¿Tienes una captura de pantalla, incluida tu línea de comando de telnet? –

Respuesta

5

No puede utilizar FTP con Telnet. Ftp requiere un canal de comando y un canal de datos. Puede usar el canal de comando con Telnet pero no puede usar el canal de datos con Telnet. El resultado es lo que ves Más detalles están en el Ftp RFC: http://www.ietf.org/rfc/rfc959.txt

+0

Si usa el modo pasivo, puede usar el canal de datos en otro telnet. –

+0

Sí para leer el contenido del archivo binario en su terminal telnet. La única forma útil de captar el contenido del canal de datos es el uso de netcat: 'nc -n -l -p dataport> download'. Pero en lugar de instalar netcat, sería * mucho * más fácil de usar * wget *, * curl *, * lftp * o el buen viejo estándar * ftp * cliente. – ceving

6

Si el sistema al que usted está haciendo telnet tiene instalado Python (la mayoría de los sistemas basados ​​en Unix tienen actualmente ALGUNAS versiones de Python instaladas por defecto), puede ejecutar un ultra- servidor Python HTTP simple, usando este comando:

$ python -m SimpleHTTPServer 

Solo asegúrese de ejecutar esto en el mismo directorio donde están los archivos que desea transferir. A continuación, abra cualquier navegador web y apuntar a la misma dirección a la que está telnet-ción, excepto a través del puerto 8000, por ejemplo:

http://192.168.2.1:8000/ 

(basta con sustituir la dirección IP con la dirección real de la máquina remota) . Esto cargará una lista de los archivos en el navegador, y puede hacer clic con el botón derecho y guardar cualquier archivo que desee.

Espero que esto ayude!

+0

Gracias Jordania. Acabo de editar mi pregunta original para aclarar mi situación: quiero automatizar una transferencia de archivos, por lo que todos los días (por ejemplo) extraería un determinado archivo de otro servidor. Así que no quiero tener que abrir un navegador web ni nada ... todo tiene que suceder en el fondo, básicamente ... – Malachi

+1

Solo quiero agregar que en Python 3 es python -m http.server – pugnator

Cuestiones relacionadas