Как контролировать, открыт ли компьютер из локальной сети, кроме ICMP (Ping)? - PullRequest
1 голос
/ 13 января 2012

Я разрабатываю проект пробуждения по локальной сети, но я хочу контролировать, открыт ли компьютер в локальной сети или нет.Но я не хочу использовать ICMP или WMI (в моей сети есть контроллеры домена).Так есть ли другие варианты для этой проблемы, такие как Socket Connection, проверить, используются ли определенные порты или нет?

Ответы [ 2 ]

1 голос
/ 13 января 2012

Как вы, наверное, знаете, "Wake on LAN" - это просто широковещательная UDP-рассылка на порт 60000 с пакетом, содержащим MAC-адрес хоста, который вы хотите активировать:

UDP 255.255.255.0:60000

тааааааа ....

Что хорошего будет делать "ping" (или что-нибудь еще?), Если хост выключен?

Все, что вы действительно интересуете:

1) Могут ли рассматриваемые хосты принимать ваши UDP-трансляции?

2) Есть ли что-нибудь между вами и хостом (ами), блокирующим порт?

1 голос
/ 13 января 2012

Что не так с ICMP?

В любом случае, вы пытаетесь получить доступ к порту и измерить, сколько времени требуется для сбоя соединения. Если он быстро выходит из строя (вам нужно измерить, что «быстро» происходит в вашей системе), возможно, компьютер работает и отказывается от соединений. Если после долгого времени происходит сбой (опять же, определите, что такое «длинный»), возможно, компьютер выключен.

Я сомневаюсь, что вы сможете достичь 100% точности таким образом.

...