W zwiazku z wpisem http://www.blog.dudzik.org.pl/asmax-1004g-resetowanie-polaczenia.html pojawiło się parę próśb o napisanie analogicznego skryptu dla systemu Windows. Najprościej (tj. bez użycia osobnych aplikacji) można to zrealizować skryptem .vbs o poniższej treści:
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "cmd"
WScript.Sleep 100
WshShell.AppActivate "C:\Windows\system32\cmd.exe"
WScript.Sleep 100
WshShell.SendKeys "telnet 192.168.1.254{ENTER}"
WScript.Sleep 100
WshShell.SendKeys "admin{ENTER}" 'login
WScript.Sleep 100
WshShell.SendKeys "xxx{ENTER}" 'haslo
WScript.Sleep 100
WshShell.SendKeys "adsl connection --up{ENTER}" '
WScript.Sleep 200
WshShell.SendKeys "logout{ENTER}" '
WScript.Sleep 200
WshShell.SendKeys "{ENTER}" '
WScript.Sleep 200
WshShell.SendKeys "exit{ENTER}" '
Prosze zmienic ip router (tutaj jest domyślne), login i hasło na właściwe. Skrypt zadziała tylko w przypadku gdy na routerze włączymy dostęp za pomocą usługi telnet.
Poniżej gotowy plik do sciagniecia
Resetuj router
W przypadku routerów opartych o chipsety Broadcoma (i nie tylko ale nie o tym tutaj mowa :)) można, za pomocą aplikacji DMT Tool regulować wartość granicznego SNR. Dzięki temu na liniach dobrej jakości można podciągnąć parametry synchronizacji modemu. Niestety Asmax 1004G wydaje się nie współpracować z aplikacją DMT Tool. Wystarczy jednak zatelnetować się na urządzenie i wydać polecenie:
adsl configure --snr x --phyReXmt on
gdzie x jest procentowym określeniem granicznego parametru SNR (100 to wartość oryginalna, 50 o połowę mniejsza itd..) . Parametr –phyReXmt on powoduje włączenie technologii PhyR co dodatkowo powinno wpłynąć na stabilność łącza.
PS. DMT Tool jednak może współpracować z routerem Asmax 1004G, należy na routerze ustawić puste hasło
Nie oferuje jednak pełnej funkcjonalności
PPS. Oczywiście najpierw należy w urządzeniu włączyć dostęp po telnecie.
Management->Access Control->Services-> zaznaczamy Telnet w kolumnie LAN
W przypadku poprzedniego routera, zbieranie statystyk dotyczacych jakości linii telefonicznej (stosunek sygnału do szumu oraz tłumienie) zrealizowałem poprzez symulowanie przeglądarki komputerowej: zalogowanie sie skryptem na stronę, pobranie jej zawartości, przegrepowanie w poszukiwaniu interesujących wartości.
Na szczęście Asmax 1004G wprowadza normalność w tym temacie i interesujące wartości moge sobie po prostu pobrać za pomocą SNMP i wyświetlić za pomocą MRTG. Poniżej wycinek z konfiga mrtg.
Title[adslsnr]: SNR i ATTN download
YLegend[adslsnr]: db
MaxBytes[adslsnr]: 5000
Options[adslsnr]: growright, gauge
Target[adslsnr]:1.3.6.1.2.1.10.94.1.1.3.1.4.2&1.3.6.1.2.1.10.94.1.1.3.1.5.2:public@192.168.2.1
PageTop[adslsnr]: <h1>SNR i ATTN download</h1>
Wartości zwracane są w liczbach całkowitych zatem zainteresowani powinni dodać parametr Factor.
Dla uploadu konfig wygląda tak:
Title[adslsnrup]: SNR i ATTN upload
YLegend[adslsnrup]: db
MaxBytes[adslsnrup]: 5000
Options[adslsnrup]: growright, gauge
Target[adslsnrup]:1.3.6.1.2.1.10.94.1.1.2.1.4.2&1.3.6.1.2.1.10.94.1.1.2.1.5.2:public@192.168.2.1
PageTop[adslsnrup]:
<h1>SNR i ATTN upload</h1>
W przypadku mojego poprzedniego routera ADSL (Linksys AG241) konieczne było symulowanie przeglądarki komputerowej i akcji użytkownika - router ten nie posiadał opcji dostępu poprzez telnet lub ssh.
Zrealizowalem to skryptem nastepujacej treści:
#!/usr/bin/perl -w
use strict;
use warnings;
use LWP;
use HTTP::Request::Common;
our $ua = LWP::UserAgent->new;
$ua->request(POST 'http://haslo:login@192.168.2.1/apply.cgi',
[submit_button => 'Status_Router', submit_type => 'disconnect',
change_action => 'gozila_cgi', wan_proto => 'pppoe']);
sleep 5;
$ua->request(POST 'http://haslo:login@192.168.2.1/apply.cgi',
[submit_button => 'Status_Router', submit_type => 'connect',
change_action => 'gozila_cgi', wan_proto => 'pppoe']);
Aktualnie korzystam z routera Asmax 1004g (mówi się że darowanemu koniowi nie zagląda się w zęby ale ten router to całkiem dobry sprzęt - dzięki Netio :)) i na szczęście umożliwia on zarządzanie poprzez telnet lub ssh.
Wykorzystując to pierwsze cały wyżej cytowany skrypt zmiescił się w jednej linijce
#!/bin/bash
(sleep 2; echo login; sleep 2; echo haslo; sleep 2; echo "adsl connection --up"; sleep 50) | telnet 192.168.2.1
W ten sam sposób można resetować wiekszość (wszystkie?) routery oparte o chipsety Broadcom i udostepniające zarządzanie poprzez telnet.