Это может быть брандмауэр.
См.
Открытие порта в брандмауэре Windows.
Как настроить брандмауэр Windows в Windows 7
У меня есть сервер Linux в моей локальной сети, который настроен для использования пробуждения по локальной сети. Я скопировал этот сценарий дословно, просто заменив MAC-адрес в примере использования. Когда я запускаю этот скрипт на Mac, сервер просыпается. Когда я запускаю его из Windows 7 (32-битный Ultimate), он ничего не делает (обратите внимание, что скрипт запускается, я добавил отладку raw_input () для подтверждения).
Это может быть брандмауэр.
См.
Открытие порта в брандмауэре Windows.
Как настроить брандмауэр Windows в Windows 7
Я редко находил WOL надежным даже для машин, которые были сертифицированы EPA Energy Start.
В некоторых случаях, в зависимости от того, обрабатывает ли драйвер устройства WOL или BIOS или что-то среднее, MAC-адрес чувствителен к регистру. Попробуйте отправить два кадра, один в верхнем регистре и один в нижнем. Звони WakeOnLan('0a:1b:f5...')
во второй раз.
Это MAC для PowerPC или Intel? Может быть ошибка Big-Endian против Little-Endian, когда преобразование в сетевой формат байтов не выполняется. Следовательно, MAC-адрес не распознается получателем. Поэтому вместо получения 0A: 1B: F5: ... он получает A0: B1: 5F: ...
Снова вставьте третий и четвертый MAC-адрес в скрипт:
WakeOnLan('0A:1B:F5:...') WakeOnLan('A0:B1:5F:...')
Что заставило меня задуматься об этом - у меня HPdc7800 с Intel vPro. Большая часть идентифицирующей информации отображается в обратном направлении в каждом байте в зависимости от того, что я использую для просмотра MAC или GUID. На консоли vPro, с веб-страницы vPro, с использованием BIOS и ОС - очень сложно предварительно выделить активный каталог машины по GUID.
Чтобы отредактировать этот скрипт и добавить следующее:
WakeOnLan('uppercase and big endian') WakeOnLan('uppercase and little endian') WakeOnLan('lowercase and big endian') WakeOnLan('lowercase and little endian')
В сценарии пример беззаботен независимо от того, явно ли определен весь байт или нет, игнорируя любые начальные нулевые байты. Я бы явно ввел ведущие нули. Кто знает, кто написал код, который NIC использует для идентификации себя и на каком уровне микропрограммы управления, простого BIOS или драйвера устройства его обрабатывают.
WakeOnLan('0:3:93:81:68:b2')