UNPKG

magic-packet

Version:

发送Wake-on-LAN魔术包唤醒局域网电脑

165 lines (120 loc) 3.96 kB
# magic-packet 一个简单而强大的 Node.js 工具,用于发送 Wake-on-LAN 魔术包唤醒局域网中的计算机。 ## 特性 - ✅ 发送魔术包唤醒局域网中的计算机 - ✅ 支持命令行和编程方式使用 - ✅ 支持自定义广播地址和端口 - ✅ 支持多次重试机制 - ✅ 提供Web界面和命令行交互式界面 - ✅ 支持保存和管理常用设备 - ✅ 强大的MAC地址验证 ## 安装 ### 全局安装 ```bash npm install -g magic-packet ``` ### 本地安装 ```bash npm install magic-packet ``` ## 使用方法 ### 命令行使用 全局安装后,可以直接使用 `magic-packet` 命令: ```bash # 基本用法 magic-packet -m XX:XX:XX:XX:XX:XX # 指定广播地址和端口 magic-packet -m XX:XX:XX:XX:XX:XX -i 192.168.1.255 -p 9 # 设置重试次数 magic-packet -m XX:XX:XX:XX:XX:XX -r 3 # 静默模式(不输出日志) magic-packet -m XX:XX:XX:XX:XX:XX -s # 查看帮助 magic-packet --help ``` ### 在代码中使用 ```javascript const { sendMagicPacket, isValidMacAddress } = require('magic-packet'); // 验证MAC地址格式 if (isValidMacAddress('XX:XX:XX:XX:XX:XX')) { // 发送魔术包 sendMagicPacket('XX:XX:XX:XX:XX:XX') .then(() => console.log('魔术包已发送')) .catch(err => console.error('发送失败:', err)); } // 指定广播地址和端口 sendMagicPacket('XX:XX:XX:XX:XX:XX', '192.168.1.255', 9) .then(() => console.log('魔术包已发送')) .catch(err => console.error('发送失败:', err)); // 使用高级选项 sendMagicPacket('XX:XX:XX:XX:XX:XX', '192.168.1.255', 9, { retries: 3, // 失败时最多重试3次 silent: true // 不输出日志 }) .then(() => console.log('魔术包已发送')) .catch(err => console.error('发送失败:', err)); ``` ## 演示应用 项目包含两个演示应用: ### 命令行交互式演示 ```bash cd demo npm install npm start ``` 提供了友好的命令行交互界面,可以: - 发送魔术包 - 保存常用设备 - 管理设备列表 ### Web界面演示 ```bash cd demo npm install npm run web ``` 启动后访问 http://localhost:3006 即可使用Web界面: - 发送魔术包 - 保存和管理设备 - 直接从设备列表唤醒计算机 ## 参数说明 ### 命令行参数 - `-m, --mac <address>`: 目标计算机的 MAC 地址 (格式: XX:XX:XX:XX:XX:XX 或 XX-XX-XX-XX-XX-XX) - `-i, --ip <address>`: 广播地址 (默认: 255.255.255.255) - `-p, --port <number>`: 目标端口 (默认: 9) - `-r, --retries <number>`: 发送失败时的重试次数 (默认: 0) - `-s, --silent`: 静默模式,不输出日志 ### API参数 ```javascript sendMagicPacket(macAddress, ipAddress = '255.255.255.255', port = 9, options = {}) ``` - `macAddress` (字符串): MAC地址,格式为 XX:XX:XX:XX:XX:XX 或 XX-XX-XX-XX-XX-XX - `ipAddress` (字符串): 广播地址,默认为 255.255.255.255 - `port` (数字): 目标端口,默认为 9 - `options` (对象): 高级选项 - `retries` (数字): 失败时的重试次数,默认为 0 - `silent` (布尔值): 是否静默模式,默认为 false ## 注意事项 1. 目标计算机必须支持并启用 Wake-on-LAN 功能 2. 需要在目标计算机的 BIOS/UEFI 设置中启用 Wake-on-LAN 3. 如果目标计算机在子网中,可能需要指定正确的广播地址 4. MAC 地址格式必须是 XX:XX:XX:XX:XX:XX 或 XX-XX-XX-XX-XX-XX,其中 XX 是十六进制数字 5. 在某些系统上,发送 UDP 广播包可能需要特殊权限,可能需要以管理员/root 权限运行 ## 获取目标计算机的 MAC 地址 1. 在目标计算机开机状态下,使用 `ipconfig /all`(Windows)或 `ifconfig`(Linux/Mac)命令查看 2. 查看目标计算机的网络适配器设置 3. 查看路由器或网络管理界面中的设备列表 ## 开发 ### 安装依赖 ```bash npm install ``` ### 运行测试 ```bash npm test ``` ### 代码检查 ```bash npm run lint ``` ## 许可证 MIT