Forum >Wake-on-LAN Feature Testing Python Script for LattePanda in Local Network
Wake-on-LAN Feature Testing Python Script for LattePanda in Local Network

The Python script referenced here was showcased in our
Wake-on-LAN (WOL) video tutorial.
It includes a function named `wake_up`, whose purpose is to construct and dispatch a WOL magic packet to a designated MAC address on a local network. This function is a key component of the script, enabling users to remotely power on machines that support the Wake-on-LAN protocol, simply by providing the correct MAC address.
import socket import time import struct def wake_up(mac='xx-xx-xx-xx-xx-xx'): """ Sends a Wake-on-LAN (WOL) magic packet to a specified MAC address within the local network. :param mac: The MAC address of the device to be woken up, formatted as 'XX-XX-XX-XX-XX-XX'. """ BROADCAST_ADDRESS = "255.255.255.255" WOL_PORT = 7 if len(mac) != 17: raise ValueError("MAC address must be in the form 'XX-XX-XX-XX-XX-XX' with 17 characters.") # Remove hyphens from MAC address and create the magic packet payload mac_address = mac.replace("-", '') data = 'FFFFFFFFFFFF' + mac_address * 16 send_data = b'' # Convert the payload into a byte array for i in range(0, len(data), 2): send_data += struct.pack('B', int(data[i: i + 2], 16)) # Send the magic packet to the broadcast address via UDP try: with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as sock: sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) for _ in range(3): # Send the packet three times sock.sendto(send_data, (BROADCAST_ADDRESS, WOL_PORT)) time.sleep(1) print(f"WOL magic packet sent to {mac}.") except Exception as e: print(f"Failed to send WOL packet: {e}") # Example usage wake_up()