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

.NET 网络唤醒

时间:2024-08-30 18:26:07浏览次数:6  
标签:macAddress 16 macBytes 网络 magicPacket NET 唤醒 设备

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

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

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

要确认可以通过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),我验证了是不起作用的。

 

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

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

相关文章

  • .NET 8 Moq mock GetRequiredKeyedService Setup报错b9
    .NET8MoqmockGetRequiredKeyedServiceSetup报错项目代码里有地方用到IServiceProvider.GetRequiredKeyedService来解析服务,在写单元测试时需要Mock它,本以为像下面这样写就可以了:||varserviceProvider=newMock<IServiceProvider>();||---|---|||serviceP......
  • .NET 摄像头采集及多种方案对比
    本文主要介绍摄像头(相机)如何采集数据,用于类似摄像头本地显示软件,以及流媒体数据传输场景如传屏、视讯会议等。摄像头采集有多种方案,如AForge.NET、WPFMediaKit、OpenCvSharp、EmguCv、DirectShow.NET、MediaCaptre(UWP),网上一些文章以及github已经有很多介绍,这里总结、确认技术选......
  • .NET 音频采集及多种方案对比
    本文介绍Windows下声音数据的采集,用于本地录音、视讯会议、投屏等场景声音录制有麦克风、扬声器以及混合录制三类方式,麦克风和扬声器单独录制的场景更多点,混合录制更多的是用于本地录音我们基于NAudio实现,开源组件NAudio已经很稳定的实现了各类播放、录制、转码等功能,WaveIn,Wa......
  • .NET 8 Moq mock GetRequiredKeyedService Setup报错
    .NET8MoqmockGetRequiredKeyedServiceSetup报错项目代码里有地方用到IServiceProvider.GetRequiredKeyedService<T>来解析服务,在写单元测试时需要Mock它,本以为像下面这样写就可以了:varserviceProvider=newMock<IServiceProvider>();serviceProvider.Setup(x=>x.GetR......
  • 科技赋能 重塑未来医疗丨共谋医疗信息化新方向,2024东北医院信息网络大会圆满落幕!
        近年来,随着我国医疗行业信息化的飞跃式发展,医疗信息化已经成为推动医疗行业高质量发展的重要力量之一。自2021年国家卫健委、中医药管理局联合印发《公立医院高质量发展促进行动(2021-2025年)》以来,各医疗机构将建设“三位一体”智慧医院作为重要指引,在政策推动以及院内......
  • POA:已开源,蚂蚁集团提出同时预训练多种尺寸网络的自监督范式 | ECCV 2024
    1.概述ApacheHive是一款建立在Hadoop之上的数据仓库工具,它提供了类似于SQL的查询语言,使得用户能够通过简单的SQL语句来处理和分析大规模的数据。本文将深入分析ApacheHive的源代码,探讨其关键组件和工作原理,以便更好地理解其在大数据处理中的角色。2.内容在开始源代码分析之前......
  • 无缝切换:Bypass交换机在关键任务网络中的应用
    在关键任务网络中,如金融交易系统、空中交通控制或紧急服务通信,任何形式的网络中断都可能导致严重的后果。因此,确保网络的高可用性变得至关重要。Bypass交换机,也称为旁路交换机或冗余交换机,通过提供无缝切换功能,在这些网络中发挥着至关重要的作用。本文将探讨Bypass交换机如何实现网......
  • .NET 摄像头采集
    本文主要介绍摄像头(相机)如何采集数据,用于类似摄像头本地显示软件,以及流媒体数据传输场景如传屏、视讯会议等。摄像头采集有多种方案,如AForge.NET、WPFMediaKit、OpenCvSharp、EmguCv、DirectShow.NET、MediaCaptre(UWP),网上一些文章以及github已经有很多介绍,这里总结、确认技术选型......
  • 【Azure Policy】添加策略用于审计Azure 网络安全组(NSG)规则 -- 只能特定的IP地址允
    问题描述对Azure上的虚拟机资源,需要进行安全管理。只有指定的IP地址才能够通过RDP/SSH远程到虚拟机上,有如下几点考虑:1)使用AzurePolicy服务,扫描订阅中全部的网络安全组(NSG:NetworkSecurityGroup)资源2)判断入站规则,判断是否是3389,22端口3)判断源地址是否是被允许的I......
  • POA:已开源,蚂蚁集团提出同时预训练多种尺寸网络的自监督范式 | ECCV 2024
    论文提出一种新颖的POA自监督学习范式,通过弹性分支设计允许同时对多种尺寸的模型进行预训练。POA可以直接从预训练teacher生成不同尺寸的模型,并且这些模型可以直接用于下游任务而无需额外的预训练。这个优势显著提高了部署灵活性,并有助于预训练的模型在各种视觉任务中取得SOTA结......