Aplicação gráfica para Wake-on-LAN com Python 3 + GUI Tk/Tcl
Publicado por Fernando (última atualização em 18/11/2013)
[ Hits: 5.370 ]
Homepage: https://github.com/phoemur/
Estou começando a aprender programar GUI e fiz essa interface para o protocolo Wake-on-LAN em Python 3 utilizando Tkinter + Ttk.
Peguei a função WOL já pronta e implementei a GUI.
Requer: Python > 3.1.
Façam bom uso.
#!/bin/env python3 # # Written by phoemur - nov / 2013 # # Thanks to ActiveState Code Recipes: # http://code.activestate.com/recipes/358449-wake-on-lan/ # and # http://code.activestate.com/recipes/577609-wake-on-lan-for-python-3/ import socket, struct from tkinter import * from tkinter import ttk, messagebox def wake_on_lan(*args): """ Switches on remote computers using WOL. """ try: macaddress = str(mac.get()).upper() broadcast = str(broad.get()) except: pass # Check macaddress format and try to compensate if len(macaddress) == 12: pass elif len(macaddress) == 12 + 5: sep = macaddress[2] macaddress = macaddress.replace(sep,'') else: messagebox.showinfo(message='Incorrect MAC Address format', title='Warning') return # Pad the synchronization stream data = b'FFFFFFFFFFFF' + (macaddress * 20).encode() send_data = b'' # Split up the hex values in pack for i in range(0, len(data), 2): send_data += struct.pack('B', int(data[i: i + 2], 16)) # Broadcast it to the LAN sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) sock.sendto(send_data, (broadcast, 7)) def make_menu(w): global the_menu the_menu = Menu(w, tearoff=0) the_menu.add_command(label="Cut") the_menu.add_command(label="Copy") the_menu.add_command(label="Paste") def show_menu(e): w = e.widget the_menu.entryconfigure("Cut", command=lambda: w.event_generate("<<Cut>>")) the_menu.entryconfigure("Copy", command=lambda: w.event_generate("<<Copy>>")) the_menu.entryconfigure("Paste", command=lambda: w.event_generate("<<Paste>>")) the_menu.tk.call("tk_popup", the_menu, e.x_root, e.y_root) # Start our GUI root = Tk() root.title("Py3k - Wake-On-LAN") root.resizable(FALSE,FALSE) make_menu(root) mainframe = ttk.Frame(root, padding="3 3 12 12") mainframe.grid(column=0, row=0, sticky=(N, W, E, S)) mainframe.columnconfigure(0, weight=1) mainframe.rowconfigure(0, weight=1) mainframe['relief'] = 'raised' mac = StringVar() mac.set('AA:BB:CC:DD:EE:FF') broad = StringVar() broad.set('255.255.255.255') mac_entry = ttk.Entry(mainframe, width=17, textvariable=mac) mac_entry.grid(column=2, row=1, sticky=(W, E)) broad_entry = ttk.Entry(mainframe, width=15, textvariable=broad) broad_entry.grid(column=2, row=2, sticky=(W, E)) ttk.Button(mainframe, text="Wake-On-LAN", command=wake_on_lan).grid(column=3, row=3, sticky=W) ttk.Button(mainframe, text = "QUIT", command=root.quit).grid(column=1, row=3, sticky=E) ttk.Label(mainframe, text="MAC Address: ").grid(column=1, row=1, sticky=(W, E)) ttk.Label(mainframe, text="Broadcast Address: ").grid(column=1, row=2, sticky=(W, E)) for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5) mac_entry.focus() root.bind('<Return>', wake_on_lan) root.bind("<Button-3><ButtonRelease-3>", show_menu) root.mainloop()
Ligando máquina pela rede usando Python
HCoin - Preço do Dólar, Bitcoin e Euro em Python
Shell reverso completo - servidor
Nenhum coment�rio foi encontrado.
Customizar a Instalação do Linux Debian com Preseed
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
Um modo leve de ouvir/ver áudio/vídeo da internet em máquinas pererecas
Resolver algumas mensagens de erro do SSH
Instalar módulo de segurança do Banco do Brasil Warsaw do tipo .run
Linux Debian 11 Bullseye Reiniciando Sozinho (1)
Bora fazer um teste? mbti (11)
Possível Migração de windows para linux ???? (pc da empresa) (2)