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

.NET 网络唤醒

时间:2024-09-04 12:25:30浏览次数:4  
标签:macAddress 16 macBytes 网络 magicPacket NET 唤醒 设备

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

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

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

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

.NET 网络唤醒_IP

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

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

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

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

.NET 网络唤醒_IP_02

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

.NET 网络唤醒_Mac_03

也可以自己写.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

作者:唐宋元明清2188

标签:macAddress,16,macBytes,网络,magicPacket,NET,唤醒,设备
From: https://blog.51cto.com/kybs0/11917212

相关文章

  • .NET 摄像头采集
    本文主要介绍摄像头(相机)如何采集数据,用于类似摄像头本地显示软件,以及流媒体数据传输场景如传屏、视讯会议等。摄像头采集有多种方案,如AForge.NET、WPFMediaKit、OpenCvSharp、EmguCv、DirectShow.NET、MediaCaptre(UWP),网上一些文章以及github已经有很多介绍,这里总结、确认技术选型给......
  • .NET 音频采集
    本文介绍Windows下声音数据的采集,用于本地录音、视讯会议、投屏等场景声音录制有麦克风、扬声器以及混合录制三类方式,麦克风和扬声器单独录制的场景更多点,混合录制更多的是用于本地录音我们基于NAudio实现,开源组件NAudio已经很稳定的实现了各类播放、录制、转码等功能,WaveIn,WaveIn......
  • bacnet mstp设备数据 转IEC61850项目案例
    目录1 案例说明 12 VFBOX网关工作原理 13 使用YABE软件读取BACNETMSTP设备信息 24 配置网关采集BACNETMSTP数据 45 用IEC61850协议转发数据 66 网关使用多个逻辑设备和逻辑节点的方法 87 案例总结 91 案例说明使用Yabe软件获取bacnetmstp设备信息,如果已知bacnet设备信......
  • 网络安全工程师需要上夜班吗?
    IT行业是一个高负荷的行业,时间紧任务重,总有做不完的项目,敲不完的代码,甚至有时候需要上夜班、加班来完成工作。那么网络安全工程师加班多么?平时需要上夜班吗?我们通过这篇文章来看看。在大型企业和机构当中,网络安全工程师通常会有更多的工作任务和项目,因此加班的情况可能会......
  • 2024年“羊城杯”粤港澳大湾区网络安全大赛 初赛 Web&数据安全&AI 题解WriteUp
    文章首发于【先知社区】:https://xz.aliyun.com/t/15442LyricsForYou题目描述:Ihavewrotesomelyricsforyou…开题。看一下前端源码,猜测有路径穿越漏洞http://139.155.126.78:35502/lyrics?lyrics=../../../../../etc/passwd简单看一下环境变量,没有flag。扫......
  • 程序设计—基于网络爬虫的股票价格分析系统 项目源码27486
    摘 要在21世纪信息时代,随着网络技术的飞速发展和大数据时代的到来,股票价格分析对于投资者和金融机构的重要性日益凸显。传统的股票价格分析方法往往依赖于人工收集和整理数据,效率低下且易出错。因此,开发一套基于网络爬虫的股票价格分析系统变得至关重要。本文旨在探讨基于......
  • .net 使用IAsyncResultFilter或IResultFilter 进行restful统一风格在swagger ui中不显
    1.现实swaggerIOperationFilter 过滤器接口publicclassSwaggerOperationFilter:IOperationFilter{privatereadonlyISchemaGenerator_schemaGenerator;publicSwaggerOperationFilter(ISchemaGeneratorschemaGenerator){_schemaGenerator=......
  • bacnet mstp设备数据 转IEC61850项目案例
    目录1 案例说明 12 VFBOX网关工作原理 13 使用YABE软件读取BACNETMSTP设备信息 24 配置网关采集BACNETMSTP数据 45 用IEC61850协议转发数据 66 网关使用多个逻辑设备和逻辑节点的方法 87 案例总结 91 案例说明使用Yabe软件获取bacnetmstp设备信息,如果已知bacnet设备......
  • 网络自动化:利用Python和Ansible实现网络配置管理
    1.环境准备安装Python和Ansible•安装Python:•确保您有Python3版本,可以通过以下命令检查:python3--version•如果没有安装Python3,可以根据操作系统的不同,通过包管理器或直接从Python官方网站下载。•安装Ansible:•Ansible是一个开源的自动化工具,使......
  • 学习网络安全好就业吗?
    网络安全与我们息息相关,无论是企业还是个人都应该高度重视网络安全。而且网络安全是一个新兴行业,人才需求量远大于供给,因此在薪资上也具有很大的优势,相关培训机构也越来越多,那么网络安全培训完就能就业吗?具体请看下文。参加网络安全培训可以找到工作,因为培训机构在提供课......