C#实现局域网内远程开机
1、远程开机原理
远程开机Wake on LAN(WOL),俗称远程唤醒,远程唤醒的实现主要是向目标主机发送特殊格式的数据包,是AMD公司制作的MagicPacket这套软件以生成网络唤醒所需要的特殊数据包,俗称魔术包(Magic Packet)。魔术包的格式,包含有连续6个字节的“FF”和连续重复16次的MAC地址,你可以在任何协议的数据包中填上 "FFFFFFFFFFFF"+连续重复16次的MAC地址,就可利用该协议作出一个使用该协议的MagicPacket。如果远程计算机最后一次关机的时候是属于非正常关机(突然断电或者关机时死机等),唤醒就有可能会失败。
2、软硬件配置
主板和网卡必须都支持远程唤醒功能。现在的主板和网卡一般都支持远程唤醒功能,在网卡中WOL一般默认Disable,所以需要在BIOS模式选择电源管理设置“Power ”选项,将“Wake up on LAN”项或“Wake on PCI Card”项均设置为“Enable”,启用该计算机的远程唤醒功能,如图1所示。
图1 BIOS中WOL设置界面
3、编程实现
/// <summary>
/// 远程开机,网卡需要具备远程唤醒功能
/// </summary>
/// <param name="mac">网卡物理地址字符数组</param>
public static void WakeUp(byte[] mac)
{
UdpClient client = new UdpClient();
client.Connect(IPAddress.Broadcast, 9090);
byte[] packet = new byte[17 * 6];
for (int i = 0; i < 6; i++)
packet[i] = 0xFF;
for (int i = 1; i <= 16; i++)
for (int j = 0; j < 6; j++)
packet[i * 6 + j] = mac[j];
int result = client.Send(packet, packet.Length);
}
// 唤醒按钮事件代码
private void button_Click(object sender, EventArgs e)
{
byte[] mac = new byte[6];
//MAC地址分配到mac数组中
mac[0] = 0x00;
mac[1] = 0x01;
mac[2] = 0x80;
mac[3] = 0x79;
mac[4] = 0x08;
mac[5] = 0xD8;
WakeUp(mac);
}
4、参考文献
http://blog.csdn.net/config_man/article/details/6906566
http://baike.baidu.com/view/1965454.htm
转载于:https://www.cnblogs.com/DHUtoBUAA/p/5440441.html
C#实现局域网内远程开机相关推荐
- 同一个网段win10远程linux,Win10专业版系统在局域网内远程另外一台电脑教程
今天给大家介绍的是Win10专业版系统在局域网内远程另外一台电脑教程.在此之前首先我们要知道什么是局域网,局域网是在一个局部的地理范围内(如一个学校.工厂和机关内),覆盖范围一般是方圆几千米之内,可以 ...
- 创建局域网内远程git仓库,并将本地仓库push推到远程仓库中
转自原文 创建局域网内远程git仓库,并将本地仓库push推到远程仓库中 1. 先远程登录局域网内服务器 2. 在服务器里 切换到某个文件夹下, 然后新建一个文件夹用作git仓库(文件夹名最好跟准备推 ...
- 局域网内远程控制开机工具NetWaker
局域网内远程控制开机工具NetWaker 此处是软件下载地址: NetWaker2.1 测试 Win10: #在华硕主板上进行测试 1.BIOS设置 进入BIOS-选择高级模式(按F7)-高级设置-电 ...
- 用shutdown命令实现局域网内远程重启或关闭电脑
用shutdown命令实现局域网内远程重启或关闭电脑 https://jingyan.baidu.com/article/851fbc377838f53e1f15ab05.html 方法/步骤 1 开 ...
- vs局域网内远程调试
vs局域网内远程调试 前提:在同一局域网内(以网线连接两台电脑最好) 软件应用端: 代码调试端: 前提:在同一局域网内(以网线连接两台电脑最好) 软件应用端: vs安装目录下找到并打开msvsmon. ...
- 【Windows】局域网内远程桌面控制
[Windows]局域网内远程桌面控制 1.背景 2.设置登录密码 3.启用远程桌面 4.远程示例 1.背景 工作中的很多场景需要远程操作,这时候可以借助远程桌面应用程序实现, 比如AnyDesk.向 ...
- 2021-08-03 在ubuntu 18.04上创建基于VNC的局域网内远程工作环境
目录标题 1. 场景描述 2. 环境搭建概要 2.1 工作站 2.2 客户端 2.3 远程登陆 3. 问题说明 3.1 单用户支持 3.2 客户端显示不全 3.3 VNC vs. Teamviewer ...
- Win7局域网内远程桌面连接
在同一LAN内,有A,B,C,D四台电脑,要设置远程连接,现在以从A电脑远程连接到B电脑为例,进行讲解 一.A电脑设置: 右击"我的电脑"--"属性"--&qu ...
- 如何使用TeamViewer在局域网内远程连接另一台电脑
TeamViewer一般都用来远程连接两台电脑,但是最近工作的时候,就要使用teamview进行局域网远程控制. 具体操作如下 1.首先需要配置两台电脑在同一个网段(见https://blog.csd ...
最新文章
- 一只端午节鸭蛋粽子的背后:AI 与农业
- 如何控制参照PR作PO时,PO的数量不能超过PR的数量
- 给年终总结报告加分的技巧:手机上就能看的可视化长什么样?
- 【转】处事22计、心态24条、伤心50句、礼仪73、学会长大20!
- 第十三周项目1-数组大折腾(一)
- [codewars] - int32 to IPv4 二进制十进制 ip地址转换
- electron入门笔记(三)- 引入bootstrap
- iOS AVPlayer 使用总结
- 灰度发布、蓝绿发布、滚动发布
- 论文解读-CenterNet:Keypoint Triplets for Object Detection
- Unity3D场景性能优化/渲染/卡顿/搭建优化 遮挡剔除/层消距离技术/LOD(多层次细节)
- 银行账号和身份证号的数据有效性设置
- cmwap与cmnet的区别
- No (visible) service implements the interface org.qiwen.serv
- 黑苹果安装EP-DB1608无线网卡驱动
- 各种json工具包的比较:
- 图解企业6S管理体系及如何推行6S管理?
- (高通平台)pdaf log打印不出来的检查步骤
- 聊一聊关于微前端架构的几种技术选型(转载,侵权必删)
- fatal error C1004: 发现意外的文件尾 这个错误怎么解决?