Mam serwer Linux w mojej sieci lokalnej skonfigurowany do używania funkcji Wakeup w sieci LAN. Skopiowałem ten skrypt dosłownie, po prostu zastępując adres MAC w przykładzie użycia. Gdy uruchamiam ten skrypt na komputerze Mac, serwer się budzi. Kiedy uruchamiam go z Windows 7 (32-bit Ultimate), nic nie robi (zauważ, że skrypt NIE działa, dodałem debugowanie raw_input () w celu potwierdzenia).
0
Rzadko stwierdziłem, że WOL jest niezawodny nawet w przypadku maszyn, które uzyskały certyfikat EPA Energy Start w USA.
W niektórych przypadkach, w zależności od tego, czy sterownik urządzenia przetwarza WOL lub BIOS, czy coś pomiędzy, w adresie MAC rozróżniana jest wielkość liter. Spróbuj wysłać dwie ramki, jedną wielką i jedną małą. Zadzwoń
WakeOnLan('0a:1b:f5...')
po raz drugi.Czy MAC jest PowerPC MAC, czy Intel? Może to być błąd Big-Endian vs. Little-Endian, w którym konwersja do formatu bajtu sieciowego nie jest wykonywana. W konsekwencji adres MAC nie jest rozpoznawany przez odbiornik. Więc zamiast odbierać 0A: 1B: F5: ..., odbiera A0: B1: 5F: ...
Ponownie wpisz trzeci i czwarty adres MAC do skryptu:
Co sprawiło, że o tym pomyślałem - mam HPdc7800 z Intel vPro. Wiele informacji identyfikujących pojawia się wstecz w każdym bajcie, w zależności od tego, czego używam do przeglądania MAC lub GUID. W konsoli vPro, ze strony vPro, przy użyciu systemu BIOS, przy użyciu systemu operacyjnego - bardzo trudno jest wstępnie przydzielić katalog aktywny maszyny za pomocą identyfikatora GUID.
Edytowanie tego skryptu i dodanie następujących elementów powinno zająć kilka chwil:
W skrypcie przykład jest beztroski, bez względu na to, czy cały bajt jest jawnie zdefiniowany, czy nie, ignorując wszelkie początkowe bajty zerowe. Chciałbym jawnie wpisać początkowe zera. Kto wie, kto napisał kod używany przez kartę sieciową do identyfikacji i na jakim poziomie oprogramowania układowego do zarządzania, zwykłego systemu BIOS lub sterownika urządzenia go przetwarza.
źródło