def sendWoL(mac, broadcast=findBroadcast()):
"""Given string mac and broadcast: Turn on computer using WoL
This was taken from http://code.activestate.com/recipes/358449-wake-on-lan/. Thanks, Fadly!
"""
# Cleans and removes delimiters from MAC
try:
mac = format_mac(EUI(mac), mac_bare)
except AddrFormatError:
raise ValueError('Incorrect MAC address format')
# Pad the synchronization stream.
data = ''.join(['FFFFFFFFFFFF', mac * 20])
send_data = b''
# Split up the hex values and pack.
for i in range(0, len(data), 2):
send_data = b''.join([send_data, 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))
评论列表
文章目录