我开发了一个唤醒lan项目,但我想控制,如果电脑打开或不在我的局域网。但我不想使用icmp或WMI(我的网络上有DC)。那么有没有其他的选择可以解决这个问题,比如套接字连接,请检查特定的端口是否使用这个。如何控制计算机是否打开除了ICMP(Ping)以外的Lan?
有什么建议吗?
我开发了一个唤醒lan项目,但我想控制,如果电脑打开或不在我的局域网。但我不想使用icmp或WMI(我的网络上有DC)。那么有没有其他的选择可以解决这个问题,比如套接字连接,请检查特定的端口是否使用这个。如何控制计算机是否打开除了ICMP(Ping)以外的Lan?
有什么建议吗?
ICMP有什么问题?
无论如何,您尝试访问一个端口并测量连接失败所需的时间。如果它很快失败(您必须测量系统上的“快速”),计算机可能会启动并拒绝连接。如果它在很长时间后失败(再次,测量以确定“长”是什么),计算机可能会停机。
我怀疑你能以这种方式达到100%的准确率。
正如你可能知道,“网络唤醒”,只是在端口60000的UDP广播,包含您要激活的主机的MAC地址的数据包:
UDP 255.255.255.0:60000
Soooooo ....
如果主机“关闭”,“ping”(或其他什么?)要做什么?
所有你真的感兴趣的是:
1)有问题的主机(S)可以收到UDP广播?
2)你和主机之间有什么阻塞端口?
我忘了补充一点,如果连接实际上成功了,你就知道计算机已经启动了。 – zmbq 2012-01-17 20:01:02