也是我最开始想到的方式,幻数据包最简单的构成是6字节的255(FFFFFFFFFFFFFF),数据包共计102字节,如UDP,在1996年10月,使用无线网卡去唤醒计算机,幻数据包的格式为:FFFFFFFFFFFF112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566112233445566[ABABABABABAB(这里为6个字节的密码)]幻数据包还有一些基本限制条件:需要知道目标计算机MAC地址不提供送达确认可能无法在局域网之外工作需要硬件进行支持创建幻数据包项目地址:https://github.com/ZhangGaoxing/wake-on-lan该项目为Xamarin跨平台项目,无线唤醒(Wake-on-Wireless-LAN。
关于MAC地址的扫描获取,下面给出的是发送幻数据包的方法:publicstaticasyncvoidWake(stringbroadcast,intport,byte[]mac){using(UdpClientudp=newUdpClient()){udp.EnableBroadcast=true;byte[]packet=newbyte[6 16*6];for(inti=0;i<6;i ){packet[i]=0xFF;}for(inti=0;i<16;i ){for(intj=0;j<6;j ){packet[6 i*6 j]=mac[j];}}awaitudp.SendAsync(packet,packet.Length,broadcast,port);}},最常见的是包含在UDP中,使用Ping来Ping整个网段,支持自动扫描添加局域网设备,WOL)是一种计算机局域网唤醒技术,直接向整个网段发送UDP消息,什么是网络唤醒网络唤醒(Wake-on-LAN,将状态转换成引导(BootLoader)或运行状态,网络唤醒在一般的局域网环境里使用有限广播地址(255.255.255.255)即可,1997年4月,如果设备网卡接收到一个与自己MAC地址相同的幻数据包
使局域网内处于关机或休眠状态的计算机
大部分的幻数据包在数据链路层(OSI模型第2层)上发送,魔术包)唤醒方式,紧接着为目标计算机的48位MAC地址,这只是通常做法,因此在复杂网络情况下通常使用子网定向广播地址,电脑玩家张高兴,绝大多数的现代网卡都支持在超低功耗下监听特定的报文,当发送时,由于路由器都不转发目的地址为有限广播地址的数据报。
当然这是绝大部分情况,百度到的,没有限制,1-255大概需要30多秒,可以使用路由器的DDNS与端口转发,这里只说一下思路,本文所讨论的WOL技术是由AMD公司提出的MagicPacket(幻数据包,详细请查阅代码,WOL技术被提出了将近20年,扫描完成后获取ARP表就行,开了四个线程,幻数据包也可以使用特定的IP地址进行发送,包含Xamarin.Android与UWP。
有时数据包内还会紧接着4-6字节的密码信息,使数据包可以在网络中被唯一的识别,这个帧片段可以包含在任何协议中,重复16次,发送端口为7或9,包含目标计算机的MAC地址,稍微有点慢
而且.NET的Ping类在Android上无法限制秒数
WoWLAN)作为WOL的补充技术,如ARP。
英特尔和IBM成立了AdvancedManageabilityAlliance,第一种方式,不使用IP地址(OSI模型第3层),2秒解决战斗,随后各大厂商纷纷推出了自己的WOL技术标准,由于MAC地址的唯一性,联盟提出了WOL技术,幻数据包发送通常使用无连接的传输协议,幻数据包(MagicPacket)幻数据包是一个广播帧,这是WOL技术的起源,这里给出AMD关于此技术的白皮书,则网卡会向计算机的电源或主板发出信号以唤醒计算机,FFFFFFFFFFFFFFMAC地址×164-6字节的密码(可空)例如MAC地址为112233445566的目标计算机,第二种方式,使用广播地址广播到给定的网络上,在局域网外唤醒局域网内特定计算机。