TP-LINK TD-8910G - restart połączenia¶
Ponad dwa lata temu opisywałem router TP-LINK TD-W8910G urządzenie wciąż sprawuje się wyśmienicie.
Ostatnimi czasy chciałem dokonać zmiany adresu IP w regularnych odstępach czasu, oczywiście jak się można łatwo domyślić router TP-LINK nie posiada wbudowanej takiej opcji. Ale nic straconego, jako że urządzenie ma dosyć prosty interfejs do zarządzania dostępny poprzez telnet oraz www, napisałem dwa proste skrypty resetujące połączenie z moim ISP.
Pierwszy z nich dokonuje tylko restartu połączenia - do poprawnego działania wymaga zainstalowanego narzędzia expect
(apt-get install expect
).
Drugi natomiast służy do wykonania pełnego restartu routera i wymaga narzędzia curl
(apt-get install curl
).
Skrypt restartujący połączenie w TP-LINK¶
#!/usr/bin/expect
# variables
set router 192.168.1.1
set username admin
set password xxxxx
# code
set timeout 100
spawn telnet "$router"
expect "Login:"
send "$username\r"
expect "Password:"
send "$password\r"
expect ">"
send "adsl configure\r"
expect "Hit <enter> to continue"
send ">"
expect ">"
Skrypt restartujący router TP-LINK¶
#!/bin/bash
router="192.168.1.1"
username="admin"
password="xxxxx"
for URL in "/", "/resetrouter.html", "/rebootinfo.cgi" ; do
curl -H "GET ${URL} HTTP/1.1" \
-H "Host: ${router}" \
--basic -u "${username}:${password}" \
"http://${router}${URL}"
if [ $? -ne 0 ] ; then
echo "Problem restarting router - ${router}!"
exit
fi
done
Co ciekawe przy przy mojej wersji oprogramowania, router się restartuje nawet podczas podania nieprawidłowego hasła w skrypcie nr #2.
Drobne porady dla zaawansowanego użytkownika¶
Można uzyskać dostęp do shella po zalogowaniu wystarczy w menu wyboru wpisać
sh
- wystartuje BusyBox (BusyBox v1.00 (2010.03.12-01:44+0000) Built-in shell (msh)
)Dla ludzi zainteresowanych tematem firma TP-LINK udostępnia zmodyfikowane źródła jądra (zgodnie z GPL)
ps: Polecam czasami aktualizować oprogramowanie, dochodzą nowe funkcjonalności :).