Wake On LAN con Windows

Poco tempo fa ho parlato di come effettuare l'operazione di Wake On LAN via Fing su smartphone Android. Oggi invece vi voglio far vedere come effettuare la medesima operazione su Windows.

Ho da poco cablato l'intera casa su rete Gigabit, e il WOL ( Wake On LAN per gli amici ) torna davvero utile, soprattutto se su tutti i computer della casa è presente VNC. L'avvio da LAN avviene per mezzo dei cosiddetti Magic Packet, uno speciale frame che quando rilevato dalla scheda di rete fa accendere il computer. Per inviare questi pacchetti esistono molteplici soluzioni. Una ad esempio è mc-wol. Inizialmente la mia idea era di usare questa integrandola con un semplice script VbScript, poi ho semplicemente pensato: "Posso scriverla io?". La risposta era ovviamente Sì. Mi sono quindi messo a cercare in cosa consistono fisicamente questi magic packet e ho scoperto che sono dei semplicissimi pacchetti costituiti dalla seguente struttura:

Ossia da FF FF FF FF FF FF seguiti da 16 volte il MAC Address della macchina da avviare. Ora qualcuno si chiederà perchè il MAC Address debba essere ripetuto per ben 16 volte. E' semplicemente un metodo di sicurezza per evitare che accidentalmente durante, ad esempio, un download il computer possa accendersi. Infatti è possibile che sequenza FFFFFFFFFFFF seguita dal MAC Address possa essere contenuta per sbaglio in un altro pacchetto. Ripetendo il valore del Mac Address per ben 16 volte si evita questo problema.

Il mio programma, scritto in C#, necessita la presenza del .Net Framework alla sua versione 4 ( se per caso non la avete, meglio. Così vi obbligo a scaricarla =) ). Il funzionamento è molto semplice. Oltre all'exe è richiesta la presenza di un file MAClist.txt che contiene la lista dei possibili PC da avviare. Per aggiungere un elemento basterà editare il file con un semplice notepad e scrivere le voci con questa sintassi:

NomePC,MAC Address del PC

La virgola funge da separatore nella stringa. Potete aggiungere quanti elementi desideriate.

Per funzionare il programma necessita solo del MAC Address del computer bersaglio da avviare. Questo indirizzo sarà broadcastato in tutta la rete e sarà inviato via protocollo UDP, che non garantisce la consegna del pacchetto. Ovviamente a questo livello l'indirizzo IP della macchina da accendere serve a ben poco, dato che la macchina è spenta e quindi non possiede un indirizzo IP. Per recuperare il MAC Address di un PC potete seguire la mia vecchia guida.

Il download dell'eseguibile e del txt è disponibile qui sotto:
Wake On LAN (705 download)

Come prima cosa dovete aggiungere al file MAClist.txt una stringa nel formato: "descrizione,MAC Address" (senza virgolette).

Ed ecco i sorgenti del progetto, sviluppato con Visual Studio:
Wake On LAN C# src (726 download)

Se avete consigli o critiche sentitivi liberi di aggiungere un commento. 😉
Buon Download 😉