Автоматически отправлять волшебный пакет при доступе
Я настроил мой компьютер с Windows 8 так, чтобы он слушал магические пакеты, отправленные с других компьютеров, чтобы запустить его. Это работает очень хорошо. НО я не хочу явно отправлять волшебный пакет, я бы предпочел, чтобы я мог отправлять волшебный пакет автоматически при попытке получить доступ к ПК по сети.
Я попытался использовать событие smbclient (30803). Я настроил это событие для запуска командной строки WOL. Но эта команда будет запускаться каждый раз, когда я получаю это событие, независимо от того, какой компьютер я пытаюсь достичь. Я не хочу пробуждать PC-X, когда пытаюсь получить доступ к PC-Y.
Есть ли другой способ?
1 ответ
Это звучит интересно... возможным решением было бы создать службу Windows и установить ее на сервер или компьютер, который используется. Этот сервис в основном был бы сетевым анализатором, который захватывает весь tcp-трафик в сети. Он будет иметь таблицу с ips и MAC-адресами (чтобы получить MAC-адрес от IP), который должен быть предварительно заполнен вручную или лучше... из таблицы ARP (я сделал программу, которая получает IP / MAC из таблицы ARP, но имеет свои проблемы... таким образом, каждая машина, подключенная к локальной сети, получит свой MAC / IP), а также эта служба будет выполнять последнюю проверку связи с каждым IP-адресом.
Затем... как это будет работать... служба будет перехватывать все TCP-пакеты и составлять список различных IP-адресов, затем каждую секунду или две будут получать все различные IP-адреса (это будет гарантировать, что служба не потребляет много системных ресурсов), и на каждом отдельном ip проверяют последний пинг: если последний пинг был успешно выполнен за последние 5 или 10 минут, ничего не делается (машина угадывается), если ни один пинг не выполнен или успех в течение 5-10 минут, выполняется пинг. Основано на ответе ping... если машина не отвечает, магический пакет отправляется на MAC (предоставляется от ARP, когда машина включена, или вручную, как было отмечено ранее). Если пинг отвечает, ничего не делается. Результат и дата пинга сохраняются, чтобы избежать пинга на все машины каждый раз. Вместо пинга также возможно сделать это, читая таблицу ARP.
При таком подходе системные ресурсы сохраняются, и пингс имеет смысл, также не отправляются волшебные пакеты, если машина включена или угадана.
Обратите внимание, что брандмауэр должен разрешать ICMP.