Underc0de - La Casa de los Informáticos

Programación Scripting => Python => Mensaje iniciado por: JaAViEr en Agosto 24, 2011, 09:54:04 PM

Título: [Código-Python] Administrar WHM por consola - JaAViEr
Publicado por: JaAViEr en Agosto 24, 2011, 09:54:04 PM
(WHM = WebHost Manager)

Hola , buen día.
Como tengo un host reseller siempre tenía que entrar
para administrar algunas cuentas y esas cosas, entonces
me aburrí de tener que abrir el navegador para ello.
Así que codee lo siguiente , que tiene las opciones básicas
1.- Agregar Host.         
2.- Eliminar Host.
3.- Listar Cuentas.
4.- Ver Paquetes actuales.
5.- Suspender una cuenta.
Código (python) [Seleccionar]

# -*- coding: utf-8 -*-
import urllib2, urllib,re

class conexion:
 
  def __init__(self,user,passw,server):
    self.user = user
    self.passw = passw
    self.server = server
   
  def conecta(self):
    cookie = urllib2.HTTPCookieProcessor()
    opener = urllib2.build_opener(cookie)
    urllib2.install_opener(opener)
    try:
      dato={'login_theme':'cpanel','user':self.user,'pass':self.passw,'goto_uri':'/'}
      conecta=urllib2.urlopen("http://%s:2086/login/"%self.server, urllib.urlencode(dato))
      titulo = re.findall("<title>(.*)</title>",conecta.read())
      if "WebHost Manager" in titulo[0]:
return True
    except:
      return False
     
class acciones_whm:
 
  def agregar_host(self,server,dominio,usuario,clave):
    if "(Account Creation Ok)" in urllib2.urlopen("http://%s:2086/scripts5/wwwacct?sign=&plan=anycode1_Normal&domain=%s&username=%s&password=%s&contactemail=&dbuser=%s&frontpage=1&cgi=1&language=es&hasuseregns=1&mxcheck=local"%(server,dominio,usuario,clave,usuario)).read():
      return "Cuenta Creada!"
    else:
      return "Ocurrió un problema al añadir la cuenta!"
 
  def eliminar_host(self,server,usuario):
    mensaje_correcto = "(%s account removed)"%usuario
    if mensaje_correcto in urllib2.urlopen("http://%s:2086/scripts/killacct?user=%s"%(server,usuario)).read():
      return "Cuenta Eliminada con Exito.!"
    else:
      return "Ocurrió un problema al eliminar la cuenta",usuario
 
  def lista_cuentas(self,server):
    contando = 1
    lista = urllib2.urlopen("http://%s:2086/scripts4/listaccts"%server).read()
    for dominio, usuario in re.findall("selectupgrade\?domain=(.*)\&user=(.*)\" onclick",lista):
      print "%s.- %s : %s"%(contando,dominio,usuario)
      contando += 1
 
  def ver_paquetes(self,server):
    for paquetes in re.findall("<option>(.*)</option>",urllib2.urlopen("http://%s:2086/scripts/editpkg"%server).read()):
      print """PAQUETE:%s"""%paquetes
 
  def suspension_cuenta(self,usuario,server):
    if "Suspension of" in urllib2.urlopen("http://%s:2086/scripts2/suspendacct?user=%s&suspend-domain=Suspend"%(server,usuario)).read():
      print "Cuenta suspendida con éxito."
    else:
      print "Ocurrió un error al suspender la cuenta..."

#Login
print """Instrucciones :
Ingrese dominio sin http:// , posteriormente ingrese sus datos de login.
"""
servidor = raw_input("Servidor:")
user = raw_input("Usuario:")
passw = raw_input("Clave:")
conectar = conexion(user,passw,servidor)
if conectar.conecta():
  print "Logueado!"
  crear = acciones_whm()
 
  while 1:
    print """
1.- Agregar Host.         5.- Suspender una cuenta.
2.- Eliminar Host.
3.- Listar Cuentas.
4.- Ver Paquetes actuales."""
    opcion = input("Opción:")
   
    if opcion == 1:
      d = raw_input("Dominio:")
      u = raw_input("Usuario:")
      c = raw_input("Clave:")
      print crear.agregar_host(servidor,d,u,c)
   
    elif opcion == 2:
      u = raw_input("Usuario:")
      print crear.eliminar_host(servidor,u)
   
    elif opcion == 3:
      print "Mostrando Dominio = Usuario:"
      crear.lista_cuentas(servidor)
   
    elif opcion == 4:
      print "Los paquetes actuales son:"
      crear.ver_paquetes(servidor)
   
    elif opcion == 5:
      u = raw_input("Usuario:")
      crear.suspension_cuenta(u,servidor)

else:
  print "Error al conectar..."

Para una próxima versión añadiré más opciones.

Saludos.
Título: Re:[Código-Python]Administrar WHM por consola - JaAViEr
Publicado por: ANTRAX en Agosto 24, 2011, 09:56:59 PM
Que pedazo de codigo JaAViEr!!!!
Excelente aporte hermano!!
Título: Re:[Código-Python]Administrar WHM por consola - JaAViEr
Publicado por: JaAViEr en Agosto 24, 2011, 09:58:55 PM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Que pedazo de codigo JaAViEr!!!!
Excelente aporte hermano!!
Gracias ANTRAX, en un rato seguiré codeando
a ver si les traigo algo similar pero para el cPanel :D
Título: Re:[Código-Python]Administrar WHM por consola - JaAViEr
Publicado por: Snifer en Agosto 24, 2011, 09:59:12 PM
Ajam con que esto era lo que estabas trabajando.. :P

Luego necesitare ayuda en Python :P
Título: Re:[Código-Python]Administrar WHM por consola - JaAViEr
Publicado por: JaAViEr en Agosto 24, 2011, 10:00:21 PM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Ajam con que esto era lo que estabas trabajando.. :P

Luego necesitare ayuda en Python :P
Jajajaja no XD, esto se me ocurrió hace un rato.
Otro code es el que estoy trabajando, que usa QT :B
Este salió al pedo xd