#!/usr/bin/env python
import ftplib,os
def darchivos(f): # Funcion encargada de descargar archivos del servidor
eleccion = "SI"
while eleccion != "NO" and eleccion == "SI":
try:
os.system("clear")
print " [+] Panel de Descargas [+]\n"
print "[+] Directorios y Archivos\n "
for x in f.nlst():
print x
print " \n [/]Inserte el nombre del archivo a descargar"
archivoserv = raw_input("Nombre>")
print "\n[+]Ahora inserte el nombre del archivo para guardar en su sistema"
archivodir = raw_input("Nombre>")
t = open(archivodir,"wb")
print "Descargando..."
f.retrbinary('RETR %s' %archivoserv,t.write)
print "[+]!Descarga completada con exito!"
print "[/] Quiere seguir descargando?"
eleccion = raw_input("Si o No?")
eleccion = eleccion.upper()
if eleccion == 'NO':
print "Pulse cualquier tecla para salir"
raw_input()
f.quit()
f.close()
if eleccion != 'NO' and eleccion != 'SI':
print "[-] Eleccion no valida"
raw_input()
darchivos(f)
except:
print "[-]No se ha podido descargar el archivo, compruebe la insercion del nombre y la validez del archivo"
raw_input()
os.system("clear")
for p in f.nlst():
print p
darchivos(f)
def archivos(f): # Funcion encargada de subir archivos al servidor
eleccion = 'SI'
while eleccion == 'SI' and eleccion != 'NO':
try:
os.system("clear")
print " [+] Panel de Subidas [+]\n"
print "[+] Directorios y Archivos\n "
for sp in f.nlst():
print sp
print "\n[+] Inserte el nombre del archivo a subir junto con su directorio"
archivo_origen = raw_input("Nombre>")
t = open(archivo_origen,'rb')
except:
print "[-] Error,el archivo no existe,retornando"
raw_input()
os.system("clear")
archivos(f)
print "\n[+] Inserte ahora el nombre que tomara el archivo en el servidor"
archivo_destino = raw_input("Nombre>")
try:
f.storbinary('STOR %s' %archivo_destino,t)
print "[+] Subida completada con exito!"
print "[/] Quiere seguir descargando?"
eleccion = raw_input("Si o No?")
eleccion = eleccion.upper()
if eleccion == 'NO':
print "Pulse cualquier tecla para salir"
raw_input()
f.quit()
f.close()
if eleccion != 'NO' and eleccion != 'SI':
print "[-] Eleccion no valida"
raw_input()
archivos(f)
f.quit()
f.close()
except:
print "[-] No se ha podido subir el archivo, retornando"
raw_input()
os.system("clear")
archivos(f)
def mostrar_directorios(f): # Funcion que recorre los directorios del servidor
try:
os.system("clear")
print "[+] Directorios y Arhivos\n"
for x in f.nlst():
print x
print "\n[/] Elija directorio"
directorio = raw_input("Directorio>")
f.cwd(directorio)
os.system("clear")
except:
print "[-] El directorio introducido no es valido retornando"
raw_input()
os.system("clear")
f.quit()
f.close()
main()
print "[+] Directorios y Archivos ",directorio,"\n\n"
for x in f.nlst():
print x
print "\n[/] Desea investigar otro directorio?"
eleccion = raw_input("Si o No?>")
eleccion = eleccion.upper()
if eleccion == 'SI':
while eleccion == 'SI':
try:
print "[/] Elija Directorio:"
directoriox = raw_input("Directorio>")
f.cwd(directoriox)
os.system("clear")
print "[+] Directorios y Archivos ",directoriox,"\n\n"
for s in f.nlst():
print s
except:
print "[-] El nombre introducido no existe o no es un directorio,retornando"
raw_input()
os.system("clear")
main()
print "\n[/] Desea investigar otro directorio?"
eleccion = raw_input("Si o No?>")
eleccion = eleccion.upper()
if eleccion == 'NO':
print "\n[+] Que funcion quiere llevar a cabo?"
print "--> Subir Archivos (Subir)"
print "--> Descargar Archivos (Descargar)"
eleccion3 = raw_input("Eleccion>")
eleccion3 = eleccion3.upper()
if eleccion3 == "SUBIR":
archivos(f)
elif eleccion3 == "DESCARGAR":
darchivos(f)
else:
print "[-] El valor introducido no es valido"
raw_input()
os.system("clear")
f.quit()
f.close()
main()
elif eleccion != 'SI' and eleccion != 'NO':
print "[-] No es una opcion valida, retornando"
raw_input()
os.system("clear")
f.quit()
f.close()
main()
elif eleccion == 'NO':
print "\n[/] Que funcion quiere llevar a cabo?"
print "--> Subir Archivos (Subir)"
print "--> Descargar Archivos (Descargar)"
eleccion3 = raw_input("Eleccion>")
eleccion3 = eleccion3.upper()
if eleccion3 == "SUBIR":
archivos(f)
elif eleccion3 == "DESCARGAR":
darchivos(f)
else:
print "[-] El valor introducido no es valido"
raw_input()
os.system("clear")
f.quit()
f.close()
main()
else:
print "[-] El valor introducido no es valido"
raw_input()
os.system("clear")
f.quit()
f.close()
main()
def entrarFtp(web): # Funcion encargada de conectar al servidor dando user y pass
try:
f = ftplib.FTP(web)
print "\n"+f.getwelcome()
except:
print "[-] El servidor es incorrecto, retornando"
raw_input()
os.system("clear")
main()
try:
user = raw_input("User>")
pasd = raw_input("Pass>")
f.login(user,pasd)
mostrar_directorios(f)
except:
print "[-] El user o la pass es incorrecto"
raw_input()
os.system("clear")
f.quit()
f.close()
main()
def main(): # Funcion Principal Main
print """
_____ ______ ____ __ _ ____ ___ ____ ______
| | | \ / ] | | | / _] \| |
| __| | o ) / /| | | | / [_| _ | |
| |_ |_| |_| _/ / / | |___ | || _] | |_| |_|
| _] | | | | / \_| || || [_| | | | |
| | | | | | \ | || || | | | | |
|__| |__| |__| \____|_____|____|_____|__|__| |__|
____ __ __ ____ __ __ ____ ___
| \| | | | \| | | \ / _]
| o ) | | | D ) | | _ |/ [_
| | ~ | | /| | | | | _]
| O |___, | | \| : | | | [_
| | | | . \ | | | |
|_____|____/ |__|\_|\__,_|__|__|_____|
"""
print "[/]Introduzca el servidor ftp"
web = raw_input("FTP>")
entrarFtp(web)
main()