# -*- coding: utf-8 -*-
from ftplib import FTP
while True:
estado_conexion = 0
try:
print """
¡ Hola, bienvenido al cliente FTP - RootCodes.Com !
¿ Qué deseas hacer ?
1.- Conectar a servidor FTP.
2.- Creditos/Autor.
3.- Salir.
"""
opc = input("Opcion:")
if opc == 1:
try:
servidor = raw_input("Servidor: ")
usuario = raw_input("Usuario: ")
clave = raw_input("Clave: ")
sesion = FTP(servidor)
print sesion.getwelcome()
try:
estado_conexion = 1
sesion.login(usuario,clave)
pasive_mode = raw_input("¿ Desea activar el modo pasivo ? (s/n) > ").lower()
if pasive_mode == "s":
print "¡ Activando modo pasivo !"
try:
sesion.set_pasv(True)
print "¡ Modo pasivo activado !"
except:
print "¡ No se pudo activar modo pasivo !"
while estado_conexion!=0:
print "\n\nActualmente te encuentras en:", sesion.pwd()
print """
1.- Listar directorios / Archivos.
2.- Ingresar a un directorio.
3.- Eliminar un archivo ó directorio.
4.- Crear un directorio.
5.- Descargar un archivo remoto.
6.- Enviar un archivo local.
7.- Ver peso de un archivo remoto.
8.- Desconectar.
"""
try:
in_server = input("Opción: ")
except:
print "¡ Ingresa un número porfavor !"
if in_server == 1:
try:
print "Lista de archivos / directorios:"
sesion.dir()
except:
print "¡ Error al listar archivos / directorios !"
elif in_server == 2:
try:
join_dir = raw_input("Directorio: ")
sesion.cwd(join_dir)
except:
print "¡ Error al intentar ingresar al directorio !"
elif in_server == 3:
print "1.- Eliminar archivo.\n2.- Eliminar Directorio."
try:
que_eliminar = input("Opción: ")
except:
print "¡ Por favor ingresa un número válido !"
if que_eliminar == 1:
try:
archivo_del = raw_input("Archivo a eliminar: ")
sesion.delete(archivo_del)
print "¡ Archivo eliminado correctamente !"
except:
print "¡ Error al intentar eliminar el archivo !"
elif que_eliminar == 2:
try:
carpeta_del = raw_input("Directorio a eliminar: ")
sesion.rmd(carpeta_del)
print "¡ Directorio Eliminado correctamente !"
except:
print "¡ Error al intentar eliminar el directorio !"
else:
print "¡ Opción ingresada no existe !"
elif in_server == 4:
try:
crear_carpeta = raw_input("Nombre del nuevo directorio: ")
sesion.mkd(crear_carpeta)
print "¡ Nuevo directorio creado con éxito !"
except:
print "¡ Error al intentar crear el directorio !"
elif in_server == 5:
try:
archivo_download = raw_input("Archivo a descargar: ")
sesion.retrbinary("RETR %s"%archivo_download, open(archivo_download,"wb").write)
print "¡ Archivo descargado con éxito !"
except:
print "¡ No se pudo descargar el archivo !"
elif in_server == 6:
try:
archivo_local = raw_input("Archivo local: ")
file_local = open(archivo_local,'rb')
sesion.storbinary("STOR "+archivo_local, file_local)
file_local.close()
print " ¡Archivo enviado con éxito !"
except:
print "¡ No se pudo enviar el archivo !"
elif in_server == 7:
try:
archivo_peso = raw_input("Archivo local: ")
print "El peso del archivo %s, es: %s"%(archivo_peso,sesion.size(archivo_peso))
except:
print "¡ No se pudo obtener el peso !"
elif in_server == 8:
sesion.quit()
estado_conexion=0
print "¡ Desconectado con éxito !"
except:
print "¡ No se pudo lograr la conexión !"
except:
print "¡ Error en los datos de conexión !"
elif opc == 2:
print """
Créditos -> Autor : JaAViEr || 0x5d
Twitter : @0x5d
WebSite : http://www.rootcodes.com
"""
elif opc == 3:
print "¡ Gracias por utilizar Cliente FTP - RootCodes.Com !"
break
except:
print "¡ Opción incorrecta !"