家庭局域网中电脑唤醒 —— WOL远程唤醒(python实现)
相关:
https://blog.csdn.net/hih30250/article/details/136342258
在WOL介绍里说过WOL数据包的最简格式是由6个字节的255和目标计算机的48位MAC地址,重复16次组成,并且这个数据包可以包含在任何协议中,最常见的是包含在UDP中。
import socket import struct class WOL_SEND(): def __init__(self,wake_ip,wake_mac): self.wake_ip = wake_ip self.wake_mac = wake_mac def create_wol_package(self): wake_mac_list = self.wake_mac.split("-") print(wake_mac_list) mac = struct.pack("BBBBBB", *[int(wake_mac_list[i],16) for i in range(6)]) # 将mac地址转二进制 broadcast_mac = b"\xff"*6 # 生成6字节的FF wol = broadcast_mac+mac*16 #将6字节FF与目标mac的16次进行合并得到wol幻数据包 return wol def send_wol_package(self): sockets = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) sockets.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1) #设置广播 sockets.sendto(self.create_wol_package(), (self.wake_ip, 8)) def main(): # wake_ip =input("请输入唤醒设备的局域网IP地址:") wake_ip = "192.168.1.112" # wake_mac = input("请输入即将发送wol远程唤醒数据包,请输入唤醒设备mac地址:") wake_mac = "D4-5D-64-08-16-81" # B4.2E.99.C3.DD.EC ws = WOL_SEND(wake_ip, wake_mac) #创建对象,传入MAC地址与IP地址 ws.send_wol_package() print(ws.create_wol_package()) print("[+]已发送远程指令") if __name__ == "__main__": main()
本博客是博主个人学习时的一些记录,不保证是为原创,个别文章加入了转载的源地址,还有个别文章是汇总网上多份资料所成,在这之中也必有疏漏未加标注处,如有侵权请与博主联系。
如果未特殊标注则为原创,遵循 CC 4.0 BY-SA 版权协议。
标签:
Python
posted on 2024-08-03 11:42 Angry_Panda 阅读(188) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2023-08-03 python3.9的nogil版本编译pytorch2.0.1源码报错——失败
2023-08-03 关于python的GIL的解除——PEP 703 – Making the Global Interpreter Lock Optional in CPython
2023-08-03 x86_64 ubuntu22.04环境下编译版本python3.13.0 alpha 0源码——python3.13.0 alpha 0的源码编译
2023-08-03 PEP 703作者给出的一种no-GIL的实现——python3.9的nogil版本
2023-08-03 python3.13是否移除了GIL的限制
2021-08-03 Ubuntu18.04 server 双网卡,一个设置为静态IP, 一个设置为动态IP
2021-08-03 【转载】 Ubuntu 中开机自动执行脚本的两种方法