关于 wake-on-lan
wake-on-lan 是一个命令行技能,可向本地网络中兼容 WoL 的计算机发送 UDP 魔术包。它还能管理已保存的主机配置,并以 JSON 返回结果。
主要功能
- 01通过 UDP 魔术包唤醒主机
- 02添加、编辑和列出主机配置
- 03直接通过 MAC 地址唤醒
- 04设置广播地址、端口和发包数
- 05以 JSON 返回结果
适用场景
- 01按主机名称唤醒已配置的计算机
- 02仅使用 MAC 地址唤醒计算机
- 03在网络不稳定时调整发包数
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ wmy2981/ skills --skill wake-on-lan安装后在 Claude Code 中输入/wake-on-lan确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.claude-plugin/plugin.jsonscripts/.env.examplewol.py详细介绍
网络唤醒
通过 UDP 广播发送魔术包,唤醒本地网络中兼容 WoL 的计算机。通过脚本管理主机配置,无需手动编辑 YAML。
执行规则
直接运行用户请求的命令,无需预先检查依赖项、环境变量或配置。如果有问题,脚本会报出清晰的错误——届时再检查并修复。
环境变量
| 变量 | 必需 | 描述 |
|---|---|---|
WOL_CONFIG_PATH | ❌ | hosts.yaml 的自定义路径(默认:~/.wmyskills/wake-on-lan/hosts.yaml) |
脚本会自动从 ~/.wmyskills/.env(所有技能共享)加载这些变量;如果脚本目录中存在 scripts/.env,则优先使用该文件。请使用 scripts/.env.example 作为模板,将变量添加到 ~/.wmyskills/.env,不要覆盖已有文件。
要求
pip install pyyaml python-dotenv
用法
脚本:scripts/wol.py
管理主机
# List all configured hosts
python scripts/wol.py list
# Add a host
python scripts/wol.py add my-pc AA:BB:CC:DD:EE:FF --ip 192.168.1.100
# Edit a host's fields
python scripts/wol.py edit my-pc --mac 00:11:22:33:44:55 --ip 192.168.1.10
# Remove a host
python scripts/wol.py remove my-pc
唤醒主机
# Wake by name (from host list)
python scripts/wol.py wake my-pc
# Wake with more packets (improves reliability on lossy networks)
python scripts/wol.py wake my-pc --count 5
# Wake by raw MAC address (no config needed)
python scripts/wol.py wake-mac AA:BB:CC:DD:EE:FF
# Wake by MAC with custom broadcast
python scripts/wol.py wake-mac AA:BB:CC:DD:EE:FF --broadcast 192.168.1.255 --port 9
添加命令选项
| 标志 | 描述 |
|---|---|
--ip IP | IP 地址(用于显示/参考) |
--broadcast BC | 广播地址(默认:255.255.255.255) |
--port PORT | UDP 端口(默认:9) |
--count N | 要发送的魔术包数量(默认:3) |
唤醒 / 按 MAC 唤醒选项
| 标志 | 描述 |
|---|---|
--broadcast BC | 覆盖广播地址 |
--port PORT | 覆盖 UDP 端口(默认:9) |
--count N | 要发送的数据包数量(默认:3;增加数量可提高可靠性) |
编辑选项
| 标志 | 描述 |
|---|---|
--new-name NAME | 重命名主机 |
--mac MAC | 更改 MAC 地址 |
--ip IP | 更改 IP 地址 |
--broadcast BC | 更改广播地址 |
--port PORT | 更改 UDP 端口 |
--count N | 更改数据包数量 |
输出格式
所有输出均为 JSON:
{"success": true, "host": "my-pc", "mac": "AA:BB:CC:DD:EE:FF", "broadcast": "255.255.255.255", "port": 9, "packets_sent": 3, "message": "Magic packet sent to AA:BB:CC:DD:EE:FF (3x via 255.255.255.255:9)"}
失败时:
{"success": false, "error": "Host 'xyz' not found", "available_hosts": ["my-pc", "my-server"]}
备注
- 目标计算机的网络适配器和主板必须支持 WoL,并且已在 BIOS/UEFI 中启用该功能。
- 魔术包通过 UDP 广播发送,只会在本地子网内传输。跨子网 WoL 需要配置定向广播或中继。
- 默认情况下,主机配置存储在
~/.wmyskills/wake-on-lan/hosts.yaml中。脚本会在首次运行时自动创建此文件。 - 依赖项:Python 3.8+、
pyyaml。数据包构造使用标准库套接字。
评论
支持 Markdown