[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.
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!!


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
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
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


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



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
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