31
2009
Wake on Wan e Router D-Link Part 2 overro hack per il tuo router
Questo articolo è stato pubblicato 3 anni 10 giorni giorni fa quindi alcuni contenuti o informazioni presenti in esso potrebbero non essere più validi. Questo sito non è responsabile per eventuali errori causati da questo problema.Come avevo promesso nell’articolo “Wake on Wan e Router D-Link“, vi spiego come è possibile che una macchina in una rete locale possa dare comandi al router con un intervento minimo dell’utente. E inoltre vi darò indicazioni sia che la vostra macchina in rete sia una macchina Linux, sia che essa sia una macchina Windows.
Ma cominciamo con linux…
Prima di tutto installare expect: è una semplice utility che permette di creare script interattivi, ossia capaci di rispondere ai prompt di altre applicazioni. A questo punto creiamo il seguente script che chiameremo arp_hack.sh
#!/usr/bin/expect
spawn telnet router_address
expect login:
send "username\r"
expect Password:
send "password\r"
expect #
send "command\r"
expect #
send "exit\r"
interact
dove arp -s ip_address eth_address è il comando necessario per il Wake On Wan su router D-Link.
Lanciando questo script otteniamo il risultato desiderato. Se vogliamo che tale operazione venga fatta all’avvio del sistema operativo, aggiungiamo la riga
/path/to/arp_hack.sh &>/dev/null
al file che gestisce le operazioni da eseguire all’avvio: in gentoo questo file è /etc/conf.d/local.start, in ubuntu & C. si tratta invece del file rc.local.
E se fosse necessario riavviare il router perderei tutto di nuovo? Oppure dovrei ricordarmi di lanciare questo script ogni volta che riavvio il router? Per ovviare a questo problema avremo bisogno di altri 2 script: il primo (router_reboot.sh) gestisce il riavvio.
#!/usr/bin/expect
spawn telnet router_address
expect login:
send "username\r"
expect Password:
send "password\r"
expect #
send "reboot\r"
interact
Il secondo invece gestisce il tutto, richiamando router_reboot.sh per riavviare il router e arp_hack.sh per lanciare il comando.
#!/usr/bin/expect
spawn /path/to/router_reboot.sh
sleep 30
send "\r"
sleep 5
spawn path/to/arp_hack.sh
interact
Ora per riavviare il nostro router basterà semplicemente lanciare questo script e poi farà tutto da solo.
E per quanto riguarda Windows? (Attenzione: i seguenti passi sono stati testati solo su Windows XP Home Edition)
Anche per Windows abbiamo bisogno di installare un programma: Plink.exe (scaricabile qui).
Per lanciare un comando sul router basterà creare il seguente file arp_hack.cmd
@set PATH=Path\to\plink.exe\;%PATH%
@plink.exe router_address -l username -pw password -batch "command"
eseguendo questo script nel prompt di Dos o attraverso il menu Start->Esegui otteniamo l’obiettivo desiderato. Per eseguirlo al riavvio sarà necessario aggiungere una voce al registro
"HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/Current Version/Run"
che abbia come valore di tipo stringa il path allo script arp_hack.cmd. Questo tuttavia darà l’inconveniente che sarà mostrato il prompt di dos all’avvio di windows per qualche secondo (ma se si ci ostina ad usare windows qualcosa si deve pure dover pagare…).
Per ottenere l’utility di “reboot e comando” come in linux sarà necessario installare un’altro programma: Tasklist (che potete trovare qui). Come prima adoperamo 2 script, il primo dei quali (router_reboot.cmd) per riavviare il router:
@set PATH=Path\to\plink.exe\;%PATH%
@plink.exe router_address -l username -pw password -batch "reboot"
Il secondo per gestire l’intera procedura:
@set PATH=Path\to\tasklist.exe\;%PATH%
@START /b \Path\to\router_reboot.cmd
@ping 127.0.0.1 -n 2 -w 1000 > nul
@ping 127.0.0.1 -n 30 -w 1000> nul
@FOR /F "tokens=2" %%i in ('tasklist.exe /NH /FI "ImageName eq plink.exe"' ) DO SET PID=%%i
@TSKILL %PID%
@START /b \Path\to\arp_hack.cmd
Tutto chiaro?

An article by






ciao
ottima guida!
vorrei capire una cosa: se il pc (windows) è spento e va via la corrente al ritorno della stessa il router si riaccende conservando la arp statica o il procedimento è valido solo per il reboot del router?
No, se il tuo router, come il mio vecchio D-Link, non è capace di mantenere in memoria la arp statica, ad un riavvio questa è persa…
Sarà solo riavviando il pc windows che sarai capace di rimemorizzare nuovamente l’associazione arp…
Se questo ti è impossibile, il consiglio migliore è di cambiare router, scegliendone uno che correttamente sia capace di mantenere in memoria questa associazione arp e che sia capace anche di eseguire la registrazione sul tuo servizio di DNS dinamico (ammesso tu lo usi)
Grazie per la risposta
se non chiedo molto sapresti indicarmi un router wireless (di fascia media) capace di mantenere in memoria la arp statica?
Mi dispiace Unclestone, ma non ti saprei aiutare a questo proposito.
Io ho cambiato router e sono passato ad un netgear, dove la memorizzazione arp viene fatta correttamente, ma non funziona il servizio di registrazione del DNS dinamico…
Sono quindi anche io ancora alla ricerca del router perfetto…
Per chi fosse interessato del PC ad effettuare una accensione sicura via WAN provate a guardare questo sito. Tutto è risolto per sempre.
http://www.wollydigital.eu