使用python发送魔术包,远程开机自启

代码

首先需要用到两个包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 后面加 空格 图标名

大功告成啦!!

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值