# wake-on-lan **Repository Path**: royogo/wake-on-lan ## Basic Information - **Project Name**: wake-on-lan - **Description**: 远程唤醒(Wake-on-LAN, WOL)是一种网络协议,用于通过局域网(LAN)唤醒远程计算机。在C++中实现远程唤醒,通常需要发送一个特殊的网络数据包,称为“魔法包”(magic packet),到目标计算机的物理地址(MAC地址)。 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2024-09-22 - **Last Updated**: 2025-04-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 远程唤醒(Wake-on-LAN, WOL)网络协议 远程唤醒(Wake-on-LAN, WOL)是一种网络协议,用于通过局域网(LAN)唤醒远程计算机。在C++中实现远程唤醒,通常需要发送一个特殊的网络数据包,称为“魔法包”(magic packet),到目标计算机的物理地址(MAC地址)。下面是一个简单的C++示例,展示如何发送魔法包以唤醒远程计算机: 获取目标计算机的MAC地址:MAC地址是一个48位的地址,通常表示为六组两位的十六进制数,例如00:1A:2B:3C:4D:5E。 创建魔法包:魔法包由6个字节的FF(255的十六进制)和目标计算机的MAC地址重复16次组成。 发送魔法包:使用UDP协议将魔法包发送到广播地址(通常是255.255.255.255)的端口7(WOL的默认端口)。 ## 构建 要为`wol`程序创建一个CMake构建系统,你需要创建一个`CMakeLists.txt`文件。这个文件将告诉CMake如何编译和链接你的程序。以下是一个简单的`CMakeLists.txt`示例,适用于你的`wol`程序: 1. **创建`CMakeLists.txt`文件**:在你的项目根目录(包含`main.cpp`的目录)中创建一个名为`CMakeLists.txt`的文件。 2. **编辑`CMakeLists.txt`**:将以下内容复制到`CMakeLists.txt`文件中。 3. **构建项目**:在项目根目录下,创建一个构建目录并进入该目录。 ```bash mkdir build cd build ``` 4. **运行CMake**:在构建目录中运行CMake以配置项目。 ```bash cmake .. ``` 5. **编译项目**:使用`make`命令编译项目。 ```bash make ``` ## 示例 1. 让linux主机休眠 ```bash sudo systemctl suspend ``` 2. 运行唤醒命令 ```bash wol 00:1A:2B:3C:4D:5E ``` 确保替换`00:1A:2B:3C:4D:5E`为你的目标计算机的实际MAC地址。 wol d8:43:ae:2c:54:eb