4 Jun 2012

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

ps: Polecam czasami aktualizować oprogramowanie, dochodzą nowe funkcjonalności :).

1 comment:

  1. SH nie działa na każdym routerze - mam TP Link TD-W8901G i niestety nie da rady... Niestety nawet zmodyfikowanego jądra nie ma dla tego routera :(

    ReplyDelete