代码
首先需要用到两个包socket和struct
然后在最下方换上你要唤醒的IP与MAC地址就行了,是不是很简单呢^_^
import socket
import struct
def send_wol_packet(mac_address, broadcast_address='192.168.1.255'):
# 检查MAC地址的格式并转换为字节
if len(mac_address) == 12:
pass
elif len(mac_address) == 17:
mac_address = mac_address.replace(mac_address[2], '')
else:
raise ValueError("MAC地址格式错误")
# 将MAC地址转换为字节
mac_bytes = bytes.fromhex(mac_address)
# 构建魔法包
magic_packet = b'\xff' * 6 + mac_bytes * 16
# 创建一个UDP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 允许广播
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
# 发送魔法包
sock.sendto(magic_packet, (broadcast_address, 9))
# sock.sendto(magic_packet, (ip_address, port))
# 关闭socket
sock.close()
input("发送成功啦~")
# 示例使用
mac_address = '04:D4:C4:3D:AE:88'
broadcast_address = '10.255.50.31' # 替换为你的VPN子网的广播地址
send_wol_packet(mac_address, broadcast_address)
打包
如果觉得每次执行都挺复杂的,还要敲命令行,那么windows平台可以打包成一个exe文件,这样放到桌面,双击执行即可
安装Pyinstaller
首先我们要先安装Pyinstaller,直接在cmd使用pip命令
pip install pyinstaller
生成exe文件
Pyinstaller -F py_word.py
其中-F
参数代表制作独立的可执行程序
py_word.py为你的py脚本名
其他可选参数
-w
是指程序启动的时候不会打开命令行
-i是添加图标 ,-i 后面加 空格 图标名