viernes, 14 de abril de 2017

Posted by Eternalwolf |
Programa en python, donde se implementan sockets para dar orden de apagado o reinicio a un ordenador por red, tambien tiene la opción de abortar la orden.


cliente.py

import socket

s = socket.socket()
s.connect(("localhost", 9999))

    
op=0
while op!=4:
    print "\n\tApagado Automatico"
    print "1: Apagar"
    print "2: Reiniciar"
    print "3: Abortar"
    print "4: Salir"
    while True:
        try:
            op = int(raw_input("> "))
            break
        except ValueError:
            print "Opcion no valida, verifique.."
    if op==1:
        print "Orden de apagado, ingrese el tiempo en minutos: "
        while True:
            try:
                time= int(raw_input("> "))
                break
            except ValueError:
                print "Formato no valido, ingrese el tiempo en minutos: "
        print "\n"
        print "Apagado en "+ str(time)+ " minutos"
        cmd = "apagar "+ str(time)
        s.send(cmd)
        rec=s.recv(1024)
        print rec
    elif op==2:
        print "\n"
        print "Orden de reiniciar, ingrese el tiempo en minutos: "
        while True:
            try:
                time= int(raw_input("> "))
                break
            except ValueError:
                print "Formato no valido, ingrese el tiempo en minutos: "
        print "\n"
        print "Reinicio en "+ str(time)+ " minutos"
        cmd= "reiniciar "+str(time)
        s.send(cmd)
        rec=s.recv(1024)
        print rec
    elif op==3:
        print "\n"
        print "Orden abortar apagado o reinicio"
        cmd= "abortar 0"
        s.send(cmd)
        rec=s.recv(1024)
        print rec
    elif op==4:
        print "\n"
        cmd= "salir 0"
        s.send(cmd)
        break
    else:
        print "\n"
        print "Opcion no valida, verifique..\n"

print "Programa finalizado"
raw_input()
s.close()

servidor.py



import socket
import subprocess

s = socket.socket()
s.bind(("localhost", 9999))
s.listen(1)

sc, addr = s.accept()

def apagar(seg):
    # Apagar
    subprocess.call("shutdown -s -f -t %d" % seg)

def reiniciar(seg):
    # Reiniciar
    subprocess.call("shutdown -r -f -t %d" % seg)

def abortar():
    # Abortar
    subprocess.call("shutdown -a")

while True:
    recibido = sc.recv(1024)
    str = recibido.split()
    if str[0] == "salir":
        break
    elif str[0] == "apagar":
        apagar((int(str[1]))*60)
        sc.send("Se a programado: Apagar")
        print "Se a programado: Apagar"
    elif str[0] == "reiniciar":
        reiniciar((int(str[1]))*60)
        sc.send("Se a programado: Reiniciar")
        print "Se a programado: Reiniciar"
    elif str[0] == "abortar":
        abortar()
        sc.send("Se a dado la orden de abortar")
        print "Abortado"

#Fin    
print "Programa finalizado"
raw_input()

sc.close()
s.close()

2 comentarios: