Ligando máquina pela rede usando Python

Publicado por Perfil removido (última atualização em 01/03/2012)

[ Hits: 9.568 ]

Download ligapcrede.py




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.

  



Esconder código-fonte

#!/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')

Scripts recomendados

Scanner de rede com threading

Renomeador de rede em Python

ArpRequest - requisição arp para endereço físico

Scanner de rede em Python

Sockets em Python


  

Comentários
[1] Comentário enviado por julio_hoffimann em 01/03/2012 - 18:49h

Interessante Amarildo!

Abraço!

[2] Comentário enviado por removido em 01/03/2012 - 21:19h

Valeu!

Esse script não é de autoria minha. Esqueci de fazer a citação.

http://code.activestate.com/recipes/358449-wake-on-lan/

Abraço!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts