我配置了我的 Windows 8 机器,它监听从其他 PC 发送的魔法包来启动它。它工作得很好。但是我不想显式发送一个魔术包,如果我可以在尝试通过网络访问 PC 时自动发送一个魔术包,我会更喜欢它。
我尝试使用 smbclient 事件(30803)。我将此事件配置为触发命令行 WOL。但是,无论我尝试访问哪台 PC,每次收到此事件时都会触发此命令。当我实际尝试访问 PC-Y 时,我不想唤醒 PC-X。
还有其他方法吗?
我配置了我的 Windows 8 机器,它监听从其他 PC 发送的魔法包来启动它。它工作得很好。但是我不想显式发送一个魔术包,如果我可以在尝试通过网络访问 PC 时自动发送一个魔术包,我会更喜欢它。
我尝试使用 smbclient 事件(30803)。我将此事件配置为触发命令行 WOL。但是,无论我尝试访问哪台 PC,每次收到此事件时都会触发此命令。当我实际尝试访问 PC-Y 时,我不想唤醒 PC-X。
还有其他方法吗?
这听起来很有趣......一个可能的解决方案是,创建一个 Windows 服务并将其安装在服务器或用于启动的计算机上。该服务基本上是一个网络嗅探器,可以捕获网络中的所有 tcp 流量。它将有一个包含 ips 和 MAC 地址的表(从 IP 获取 MAC),之前应该手动或更好地填充...从 ARP 表(我做了一个从 ARP 表获取 IP / MAC 但有其问题的程序...因此插入 LAN 的每台机器都将获得其 MAC / IP),该服务还将对每个 IP 进行最后日期 ping。
然后......它将如何工作......该服务将捕获所有 TCP 数据包并列出不同的 IP,然后每隔一秒或两秒获取所有不同的 IP(这将保证该服务不会消耗大量系统资源),并且在每个不同的 ip 检查最后一次 ping:如果最后一次 ping 在最后 5 或 10 分钟内成功完成,则什么也不做(机器被猜到了),如果没有 ping 完成或在 5-10 分钟内成功,则进行 ping。基于 ping 响应...如果机器没有响应,则将魔术包发送到 MAC(在机器启动时由 ARP 提供或如前所述手动提供)。如果 ping 响应,则什么也不做。存储 Ping 结果和日期,以避免每次都对所有机器进行 Ping。代替 ping 也可以读取 ARP 表。
在这种方法中,系统资源被保留,并且 ping 是有意义的,如果机器启动或猜到,也不会发送魔术包。
请注意,防火墙应允许 ICMP。