Skrypt Wakeup on LAN działa z Maca, ale nie z Windows 7


0

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).

Odpowiedzi:



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:

WakeOnLan('0A:1B:F5:...')  
WakeOnLan('A0:B1:5F:...')  

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:

WakeOnLan('uppercase and big endian')  
WakeOnLan('uppercase and little endian')  
WakeOnLan('lowercase and big endian')  
WakeOnLan('lowercase and little endian')  

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.

WakeOnLan('0:3:93:81:68:b2') 
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.