[Código-Python] Administrar WHM por consola - JaAViEr

Iniciado por JaAViEr, Agosto 24, 2011, 09:54:04 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Agosto 24, 2011, 09:54:04 PM Ultima modificación: Marzo 23, 2015, 12:09:17 PM por Expermicid
(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

# -*- 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.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Que pedazo de codigo JaAViEr!!!!
Excelente aporte hermano!!


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
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
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Ajam con que esto era lo que estabas trabajando.. :P

Luego necesitare ayuda en Python :P
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Llaman traidor a la persona que evito que caiga el foro, gente bruta!



No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
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
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta