C# 远程唤醒(远程开机)

C# 远程唤醒(远程开机)C#远程唤醒(远程开机)近日,小白要用到远程开机的功能,网上大多介绍的是MagicPacket的工具。实际上,此MagicPacket是AMD公司开发的,请在google.cn中搜索MagicPacketTechnology。原理上我们不用深入,实现上是发一个BroadCast包,包的内容包括以下数据就可以了。FFFFFFFFFFFF,6个FF是数据的开始,紧跟着16次

大家好,又见面了,我是你们的朋友全栈君。

C# 远程唤醒(远程开机)

近日,小白要用到远程开机的功能,网上大多介绍的是Magic Packet的工具。实际上,此Magic Packet是AMD公司开发的,请在google.cn中搜索Magic Packet Technology。原理上我们不用深入,实现上是发一个BroadCast包,包的内容包括以下数据就可以了。FF FF FF FF FF FF,6个FF是数据的开始,紧跟着16次MAC地址就可以了。比如MAC地址是11 22 33 44 55 66,那么数据就是FF FF FF FF FF FF 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66……..(11 22 33 44 55 66重复16次)。这个数据在包的任何位置都可以,或者包仅为这个数据。然后网播出去就可以了。简单的实现如下:
 

 1  private   static   void  WakeUp( byte [] mac) {


 2              UdpClient client  =   new  UdpClient();

 3              client.Connect(IPAddress.Broadcast,  30000 );

 4              

 5               byte [] packet  =   new   byte [ 17   *   6 ];

 6 

 7               for  ( int  i  =   0 ; i  <   6 ; i ++ )

 8                  packet[i]  =   0xFF ;

 9 

10               for  ( int  i  =   1 ; i  <=   16 ; i ++ )

11                   for  ( int  j  =   0 ; j  <   6 ; j ++ )

12                      packet[i  *   6   +  j]  =  mac[j];

13 

14               int  result  =  client.Send(packet, packet.Length);

15          }

PS:跨路由器的问题(不是公网IP问题)。如果机器A和机器B处于同一个网段内,用client.Connect(IPAddress.Broadcast,port)是可以的,如果A和B不是处于同一个网段内,那么就要用网段内的广播地址,比如A机器是192.168.1.2,B机器IP地址是192.168.100.3,用A远程唤醒B,就要用B网段的广播地址,192.168.100.255。
IPAddress ip = new IPAddress(new byte[]{192,168,100,255});
client.Connect(ip,port)。原理可以参考网络协议。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141987.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 黑客编程入门 之 网络编程入门

    黑客编程入门 之 网络编程入门网络编程入门前言Socket技术详细介绍Socket编程所需函数前言  “任何职业都可以成为黑客。你可以是一个木匠黑客。不一定是高科技。只要与技能有关,并且倾心专注于你正在做的事情,你就可能成为黑客。”——引自《黑客伦理与信息时代精神》  在这里引入黑客定义就是想提醒自己和大家,真正的黑客精神:Open,Free,Share,热衷共享最新研究。时刻谨记黑客精神,不要现在盛行的”ScriptKid”(专指只会使用现成软件进行攻击以取得满足感的,危害网络空间安全的人)。希望大家都能够为网络环境贡献自

    2022年6月18日
    38
  • 物联网架构_笔记_物联网总体架构

    物联网架构_笔记_物联网总体架构参考文章:http://www.elecfans.com/news/wangluo/20160517418825.htmlhttp://www.elecfans.com/iot/419545_a.html其中物联网的通信环境有Ethernet,Wi-Fi,RFID,NFC(近距离无线通信),Zigbee,6LoWPAN(IPV6低速无线版本),Bluetooth,GSM,G

    2022年9月16日
    2
  • spring in spring翻译_scipy官方文档中文版

    spring in spring翻译_scipy官方文档中文版Spring官方文档翻译

    2025年9月4日
    6
  • windows7系统 您的账户已被停用。请向系统管理员咨询

    windows7系统 您的账户已被停用。请向系统管理员咨询问题细节描述:前几天好像是想换个用户桌面,换个用户桌面,首先把Administrator用户给禁用,然后把现在使用的用户名给删除。重启电脑,结果进不去了,显示这个错误提示:您的账户已被停用。请向系统管理员咨询解决办法:1.首先重启–(正常启动)2.按F8–(这个大家都知道-开机选项)3.选择安全模式–(注意:不是带命令的安全模式,是安全模式。F8第

    2025年6月23日
    2
  • 虚拟现实技术成功应用案例分析_虚拟现实技术的案例

    虚拟现实技术成功应用案例分析_虚拟现实技术的案例心理治疗方面,VR技术以治疗恐怖症、PTSD等闻名于世,近年来不断拓广应用领域。英国伦敦大学学院(UCL)、西班牙巴塞罗那大学和英国德比大学的心理学家和计算机科学家们发表了一项研究,提出一种可以提升自我同情的心理治疗新方法——利用虚拟现实技术。具体的案例被称为“化身实验”,在试验的过程中,被试者会化身为安抚者、被安抚者、第三人视角进行试验,研究结果显示,以从虚拟儿童的角度回溯安抚过程的女性,会…

    2025年11月2日
    4
  • linux ftp lcd 命令,Linux FTP命令使用实例「建议收藏」

    linux ftp lcd 命令,Linux FTP命令使用实例「建议收藏」之前我们说过linuxscp的命令,是用来两台Linux服务器之前传输数据的。那么我们如何在Linux服务器与没有SSH的虚拟主机传输数据呢,我们可以使用Linux的FTP命令来实现,下面是一些使用实例。ftpwww.centos.bz这个命令表示试图连接www.centos.bz的FTP服务器,如果成功连接上,就会要求输入FTP用户名和密码。ftp>help连接上FTP服务器后,键入…

    2022年9月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号