我想检测一下Wake On Lan是否可行。
在我的路由器(Tomato firmware)上有一个表,上面有信息--当显示设备"Active (In ARP)“时,可以通过WOL (脱机linux pc)打开这个设备。
我想知道这是通过路由器功能实现的,还是我可以用C#或C来实现?函数SendArp可以检测MAC地址并执行"arping“,但这不是我想要做的。
发布于 2010-11-10 18:34:27
您的路由器无法检测您的计算机(或任何其他网络设备)是否支持Lan唤醒。您的路由器所能做的就是发送一个WOL包,并希望它将被唤醒。
如果主叫设备接受数据包并唤醒,则必须在设备本身进行配置,并且在OSI第4到1层中没有任何东西可以告诉您设备是否支持WOL。
如果你想用C#从你的电脑上发送一个网络在线信息包,你可以通过你最喜欢的搜索引擎找到很多的例子。这是one example from Bart de Smet。
更新
消息"Active (In ARP)“并不意味着您的路由器检测到可以发送WOL数据包。它只是告诉您路由器ARP缓存中当前存在与此IP或MAC地址相匹配的条目。这样的缓存包含所有网络设备(包括您的pc)。在Windows中,只需打开命令行并输入arp -a即可查看您的windows机器的缓存。在这里,您将获得存储的mac地址列表,以便发送到IP地址。黑帽可以尝试操纵此缓存来重定向您的ip通信。有关这方面的更多信息,请访问at wikipedia。
因此,此消息只是告诉您,您的路由器最近与此设备建立了ip连接。就这样。但是它不能告诉你你的设备当前是否能够处理WOL数据包(因为它是否有电源连接)。
发布于 2010-10-02 06:22:06
你最好去看看http://msdn.microsoft.com/en-us/library/ff566341(VS.85).aspx
这将允许您查询电源管理的布尔值和设备特定的“唤醒启用”状态。
考虑到它是WMI,您应该能够远程访问它,但是它确实需要设置几个注册表项来公开WMI类。
发布于 2010-11-10 17:20:48
您可以从BIOS获取有关计算机是否支持WOL的信息。
如果它受支持,请确保它已打开。默认情况下,许多机器都禁用了该功能。
要通过网络路由WOL数据包,您需要将路由器上的端口9转发到255.255.255.255 (Brodcast- To -all) IP地址。
https://stackoverflow.com/questions/3842976
复制相似问题