たった11行のコードでできるんだね。覚書として記録。
コードは以下の通り。
起動したい PC の MAC アドレスを指定(mac_address ) して保存後、実行するだけ。
import socket
import struct
def send_wol_packet(mac_address):
# MAC アドレスをバイト配列に変換
mac_address = mac_address.replace(':', '')
mac_address_bytes = bytes.fromhex(mac_address)
# マジックパケットを作成
magic_packet = b'\xff' * 6 + mac_address_bytes * 16
# UDP パケットを送信
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s:
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.sendto(magic_packet, ('192.168.1.255', 9)) # '192.168.1.255'は環境に合わせて置き換えてください
# 起動したい PC の MAC アドレスを指定
mac_address = "XX:XX:XX:XX:XX:XX" # 実際のMACアドレスに置き換えてください
# WOL パケットを送信
send_wol_packet(mac_address)