C语言实现wake on lan(网络唤醒)

您所在的位置:网站首页 网络唤醒开机 C语言实现wake on lan(网络唤醒)

C语言实现wake on lan(网络唤醒)

2023-11-27 02:59| 来源: 网络整理| 查看: 265

        wake on lan是一种网络唤醒功能,它可以实现远程开机,刚好实验室有一台ftp服务器,因为不是24小时开机的,所以每次开机都要跑过去用手按开关,非常麻烦,于是在网上找了下资料,自己实现了一把,并在windows下用Qt写了个简单的界面,以后想开服务器就方便了。原理就是源主机广播一个特殊的数据包给目的主机,前提是目的主机的主板支持wake on lan并在BIOS里已经设置好,还有就是要知道目的主机的MAC地址。这个特殊的数据包叫做magic packet,它由102个字节组成,最前面六个字节为0xFF,其他字节为目的主机的MAC地址(6个字节为一组,共16组),如下图所示:

 

       知道这个原理之后就可以很容易实现了,实现代码如下,本人亲测。

1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 9 10 int main(int argc, char* argv[]) 11 { 12 unsigned char mac[6]={0x00,0x10,0x20,0x30,0x40,0x50};//目的主机MAC地址,例如: 00:10:20:30:40:50 13 unsigned char packet[102]; 14 struct sockaddr_in addr; 15 int sockfd, i,j, on = 1; 16 17 //构建magic packet 18 for(i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3