远程Windows开机:WoL(Wake-on-Lan)客户端Python实现

Published on 2025-04-21 14:25 in 分类: 软件 with 狂盗一枝梅
分类: 软件

远程Windows开机实现之前已经使用Java实现过了(详情见《远程Windows开机:WoL(Wake-on-Lan)客户端Java实现》),现在使用Python重新实现,当然,需要重新复习下网络唤醒的原理:

借助WoL技术(Wake-on Lan)可以将电脑远程开机,关于Wol,可以参考维基百科:《网络唤醒》它的基本原理就是支持Wol技术的网卡在电脑关机之后,网卡还有微弱的供电,当它发现网络广播的内容中有特定的“魔法数据包”,并且经过解析发现它所指的地址是自身所处的电脑时,网卡就会通知机内的主板电源供应器,开始进行开机(或唤醒)的程序。

具体来说,只要发送特定格式的UDP广播数据包到子网中,就能将计算机唤醒,数据包格式:

FF FF FF FF FF FF FF MAC 地址 × 16 4-6字节的密码(可空)

完整Python代码如下:

import socket
import os

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 启用广播
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)

data = "FFFFFFFFFFFF" + "58112208850B" * 16 + "000000000000"

s.sendto(bytes.fromhex(data), ('192.168.3.255', 9))

s.close()
os.system("pause")

if __name__ == '__main__':
    pass

可以看到Python版本的代码非常简洁,而且作为脚本语言不需要编译打包,直接复制到桌面上就可以随时用了,Python是天下第一好的编程语言!(对不起Java,我叛变了)


#windows #win10 #python
复制 复制成功