Ligando máquina pela rede usando Python
Publicado por Perfil removido (última atualização em 01/03/2012)
[ Hits: 9.968 ]
Tive a necessidade de ligar algumas máquinas via rede, e esse script em Python caiu como uma luva. Lembrando que a BIOS tem que ter suporte Wake-on-LAN (Wol) e estar ativo.
1. Baixe ou crie o script no local desejado. Eu padronizei o "/usr/local/sbin" para os meus scripts.
2. Dê permissão de execução.
3. Execute o script com os macaddresses das máquinas que deseja acordar remotamente.
#!/usr/bin/env python
# ligapcrede.py
import socket
import struct
def wake_on_lan(macaddress):
""" Switches on remote computers using WOL. """
# 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:
raise ValueError('Formato de endereco MAC incorreto ')
# Pad the synchronization stream.
data = ''.join(['FFFFFFFFFFFF', macaddress * 20])
send_data = ''
# Split up the hex values and pack.
for i in range(0, len(data), 2):
send_data = ''.join([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))
if __name__ == '__main__':
# Use macaddresses da maquina a ser ligada com quaisquer separadores.
wake_on_lan('0F:0F:DF:0F:BF:EF')
wake_on_lan('0F-0F-DF-0F-BF-EF')
# Ou sem quaisquer separadores.
wake_on_lan('0F0FDF0FBFEF')
Shell reverso em Python - cliente
SynapSeq - programa para estimular as ondas cerebrais
Por que seu __DIR__ falhou ou o "inferno" dos caminhos no PHP
Preparando-se para certificações da LPI através do LPI Lab
Migração de Arch Linux para repositórios CachyOS (Uso de Instruções v3 e v4)
Arch Linux com repos do CachyOS para otimização ou usar Gentoo?
Ativando o modo Quake no XFCE4-Terminal
[Tutorial] Configurando Multimaster no Samba 4 AD (DC02) + Explicação de FSMO Roles
[Resolvido] Google Chrome reclamando de perfil em uso após mudar hostname
Como instalar Warsaw no Gentoo? (6)
Senhor Einstein tinha razão mesmo! [RESOLVIDO] (12)
Como insiro e excluo um elemento XML e JSON ao código Javascript (2)
Da pra formatar um netbook MGB e usar algum linux nele? É possível usa... (4)









