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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 双线性插值(Bilinear Interpolation)[通俗易懂]

    双线性插值(Bilinear Interpolation)[通俗易懂]双线性插值(BilinearInterpolation)  假设源图像大小为mxn,目标图像为axb。那么两幅图像的边长比分别为:m/a和n/b。注意,通常这个比例不是整数,编程存储的时候要用浮点型。目标图像的第(i,j)个像素点(i行j列)可以通过边长比对应回源图像。其对应坐标为(i*m/a,j*n/b)。显然,这个对应坐标一般来说不是整数,而非整数的坐标是无法在图像这种离散数据上使用…

    2022年6月10日
    55
  • linux pycharm2021年激活码刚出【中文破解版】

    (linux pycharm2021年激活码刚出)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月30日
    280
  • Idea激活码最新教程2020.2.2版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2020.2.2版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2020 2 2 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2020 2 2 成功激活

    2025年5月23日
    0
  • 好看又有趣的404页面设计[通俗易懂]

    好看又有趣的404页面设计[通俗易懂]404页面作为提示错误的媒介,起着承上启下的作品,既要保证用户在看到错误页面的同时不会直接退出,又要给用户提供新的操作选择,两者兼顾才会有更好的用户体验。现在更多设计师愿意到可以到乐于分享学习经验的集设网www.ijishe.com,优秀的成功案例,可以开拓设计师的思路,值得在下一个项目中积攒经验!404页面这样设计好看又有趣-集设设计没思路,那么就需要从这几个方面着手:1、了解产品的背景,产品未来发展方向。2、去搜UI

    2022年7月27日
    2
  • 英语基础词汇_16天背完初中英语单词

    英语基础词汇_16天背完初中英语单词高频1500todaysoulsongconsidersellpauseriveruglydelayfinishangrybearwelcomepoorrailwaygrowthbuspilotpastpossessionunitdresselsementionhillunclelossdistanceaccepthanghurryquiteofficermarkwaroutsidesoldierthanformerpraise

    2022年9月25日
    0
  • dos命令登陆mysql命令

    dos命令登陆mysql命令

    2021年7月17日
    57

发表回复

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

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