首页 > 其他分享 >.NET 网络唤醒

.NET 网络唤醒

时间:2024-09-04 22:03:43浏览次数:3  
标签:macAddress 16 macBytes 网络 magicPacket NET 唤醒 设备

本文介绍下电脑设备关机的情况下如何通过网络唤醒设备,之前电源S状态 计算机Power电源状态- 唐宋元明清2188 - 博客园 (cnblogs.com) 有介绍过远程唤醒设备,后面这俩天了解多了点所以单独加个随笔

设备关机的情况下,使用网络唤醒的前提条件:

1. 被唤醒设备需要支持这WakeOnLine

首先是有线网口要支持,比如我司大屏有俩个Lan口但只有Lan1支持远程唤醒。然后主板需要支持网络唤醒,要确认可以通过BIOS-电源管理页面查看,如下有Wake by Lan。并且是开启状态

2. 接有线网络(关机状态下有线网络接口是黄灯闪烁的),另一端启动唤醒的设备需要与被唤醒设备处于同一局域网。

不支持无线网卡,因为设备关机情况下无线网卡是断电的!

我测试验证,是将大屏设备有线连接至一个路由器,然后笔记本连接路由器的wifi。大屏设备的ip是192.168.2.9,笔记本的ip是192.168.2.6。

拿到目标设备的IP以及有线Mac地址(可以在设备连接网络的属性里查看):

然后就可以使用发包工具MAGPAC.exe(下载:MAGPAC)试试唤醒,在设备关机的情况下发包就可以自动开机配置如下,输入IP以及Mac地址:

也可以自己写.NET代码调用,发数据包来唤醒: 复制代码 复制代码
 1     private void TestButton_OnClick(object sender, RoutedEventArgs e)
 2     {
 3         string ip = "192.168.2.9";
 4         string macAddress = "EC:D6:8A:A6:4B:7B";
 5         SendWakeOnLan(ip,macAddress);
 6     }
 7 
 8     private static void SendWakeOnLan(string ipAddress, string macAddress)
 9     {
10         try
11         {
12             // 将MAC地址转换为字节数组
13             byte[] macBytes = macAddress.Split(':').Select(x => Convert.ToByte(x, 16)).ToArray();
14             // 创建魔术包
15             byte[] magicPacket = new byte[6 + 16 * macBytes.Length];
16             for (int i = 0; i < 6; i++)
17             {
18                 magicPacket[i] = 0xFF;
19             }
20             for (int i = 0; i < 16; i++)
21             {
22                 Array.Copy(macBytes, 0, magicPacket, 6 + i * macBytes.Length, macBytes.Length);
23             }
24             // 使用UDP发送魔术包
25             UdpClient client = new UdpClient();
26             client.Connect(ipAddress, 9); // 9是WoL的默认端口
27             client.Send(magicPacket, magicPacket.Length);
28             client.Close();
29 
30             Debug.WriteLine($@"唤醒包已发送至: {ipAddress},{macAddress}");
31         }
32         catch (Exception ex)
33         {
34             Debug.WriteLine("发送唤醒包时发生错误: " + ex.Message);
35         }
36     }
复制代码 复制代码

直接远程唤醒关机设备,亲测有效!

1. 删除MAC地址中的分隔符(“:”),魔术数据包由6个0xFF字节后跟16次目标MAC地址

2. 通过UDP协议将数据包发送到指定IP和目标端口9

注意,不是广播而是指定IP发送数据包,网上有些说是用广播地址(255.255.255.255),我验证了是不起作用的。

上方Demo代码见仓库 kybs00/WakeOnLanDemo (github.com) 

 

 关键字:电源状态、远程唤醒、发包工具MAGPAC.exe

 

2024-09-04 22:03:01【出处】:https://www.cnblogs.com/kybs0/p/18389269

=======================================================================================

标签:macAddress,16,macBytes,网络,magicPacket,NET,唤醒,设备
From: https://www.cnblogs.com/mq0036/p/18397424

相关文章

  • Profinet转EtherCAT协议转换网关(推荐收藏哦)
    在工业自动化领域,Profinet转EtherCAT两种网络协议的互通互联备受关注。其实有一款很不错的设备名为远创智控YC-PN-ECT,可以轻松解决这一问题。接下来作者从这款设备的主要功能、技术参数、性能优势及配置方法等方面深入阐述。这款网关性能优越,能够高效转换不同协议,为用户带来便......
  • 海外合规|新加坡网络安全认证计划简介(三)-Cyber Trust
    一、认证简介:     Cyber Trust标志是针对数字化业务运营更为广泛的组织的网络安全认证。该标志针对的是规模较大或数字化程度较高的组织,因为这些组织可能具有更高的风险水平,需要他们投资专业知识和资源来管理和保护其IT基础设施和系统。CyberTrust标志采用基......
  • 网络编程----网络基础ip地址
    一丶IP地址1.基本概念1. IP地址是Internet中主机的标识2. Internet中的主机要与别的机器通信必须具有一个IP地址3. IP地址为32位(IPv4)或者128位(IPv6)        NAT:公网转私网、私网转公网4. IPV4表示形式:常用点分十进制形式,如202.38.64.10,最后都会转换为一......
  • 基于GA遗传优化的离散交通网络双层规划模型设计matlab仿真
    1.程序功能描述基于GA遗传优化的离散交通网络双层规划模型设计.优化输出路段1和路段2的收费情况收敛过程。2.测试软件版本以及运行结果展示MATLAB2022a版本运行   3.核心程序whilegen<MAXGEN;rng(gen)genP1=0.9;P2=1-P1;......
  • 网络编程--python
    网络编程1、介绍(一)、概述网络编程也叫套接字编程,Socket编程,就是用来实现网络互联的不同计算机上运行的程序间可以进行数据交互(二)、三要素IP地址:设备(电脑,手机,IPad,耳机…)在网络中的唯一标识.端口号:程序在设备上的唯一标识.协议:通信(传输)......
  • 基于GA遗传优化的离散交通网络双层规划模型设计matlab仿真
    1.程序功能描述基于GA遗传优化的离散交通网络双层规划模型设计.优化输出路段1和路段2的收费情况收敛过程。2.测试软件版本以及运行结果展示MATLAB2022a版本运行3.核心程序rng(gen)genP1=0.9;P2=1-P1;FitnV=ranking(Objv);......
  • PointNet++改进策略 :模块改进 | PAConv,位置自适应卷积提升精度
    题目:PAConv:PositionAdaptiveConvolutionwithDynamicKernelAssemblingonPointClouds来源:CVPR2021机构:香港大学论文:https://arxiv.org/abs/2103.14635代码:https://github.com/CVMI-Lab/PAConv前言PAConv,全称为位置自适应卷积(PositionAdaptiveConvolution),是一种......
  • 【人工智能】分布式网络介绍
    一、分布式网络概述        分布式网络,这种计算机网络架构,以其独特的去中心化特性,将数据、服务和应用分布在多个物理位置的节点上,从而构建出一个高效、灵活且强大的网络系统。在这样的网络中,不存在一个单一的控制中心,每个节点都可能承担着数据处理和存储的任务,这种设......
  • 网络编程(TCP通信)
    【1】认识网络网络:多设备通信【2】IP地址1.基本概念IP地址是Internet中主机的标识Internet中的主机要与别的机器通信必须具有一个IP地址IP地址为32位(IPv4)或者128位(IPv6)NAT:公网转私网、私网转公网IPV4表示形式:常用点分十进制形式,如202.38.64.10,最后都会转换为一个32位的......
  • 各个网络厂商网络设备默认的用户名和密码大全
    吉祥知识星球http://mp.weixin.qq.com/s?__biz=MzkwNjY1Mzc0Nw==&mid=2247485367&idx=1&sn=837891059c360ad60db7e9ac980a3321&chksm=c0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330&scene=21#wechat_redirect《网安面试指南》http://......