View Full Version : reader di valori adsl..[requisiti per]
REPERGOGIAN
23-07-2006, 17:34
ciao
dunque io vorrei fare un programmino che legga il margine di rumore (SNR) ogni tot secondi dal router adsl e mi crei un log
ho un netgear DG834GT e sono disponibili i sorgenti
una roba del genere ma non pretendo l'interfaccia
basta che mi crei il log
http://img159.imageshack.us/img159/1505/yoda6.th.png (http://img159.imageshack.us/my.php?image=yoda6.png)
dove si legge il margine del download poi quello dell'upload e l'orario
avrei bisogno di sapere se è una cosa difficilissima
o con qualche materiale e il vostro aiuto potrei farcela
grazie
Dipende su che sistema operativo sei. Su linux potresti cavartela con un piccolo script della shell. Anche su Windows usando qualche linguaggio di scripting come ruby dovresti cavartela con poche righe se ti accontenti di qualcosa di testuale.
ciao ;)
REPERGOGIAN
23-07-2006, 19:15
grazie della risp!
dunque io sono principalmente su windows xp home edition ma ho anche kubuntu installato da 48 ore
io mi accontento benissimo anche di un file txt
basta che mi dia quell'output
detto ciò, dato che io sono niubbio at all, quale strada seguo?
e quale sw posso usare?
grazie ancora
Questo dovrebbe fare al coso tuo. L'ho provato sul mio dg834gt ma dovrebbe funzionare anche sul tuo. In ogni caso sistema le variabili all'inizio dello script e poi lancialo in una shell di linux.
#!/bin/sh
USERNAME="admin"
PASSWORD="passwd"
IP="192.168.0.1"
PAGE="stattbl.htm"
TMPFILE="/tmp/statistiche-snr.log"
LOGFILE="statistiche.log"
INTERVALLO="10"
while true; do
unlink $TMPFILE 2>/dev/null
wget --http-user=$USERNAME --http-passwd=$PASSWORD http://$IP/$PAGE -O $TMPFILE -o /dev/null
DOWN=`cat $TMPFILE | tail -n 10 | head -n 1 | sed -e "s/<td nowrap align=\"center\"><span class=\"ttext\">//;s/<\/span><\/td>//;s/ *//"`
UP=`cat $TMPFILE | tail -n 9 | head -n 1 | sed -e "s/<td nowrap align=\"center\"><span class=\"ttext\">//;s/<\/span><\/td>//;s/ *//"`
unlink $TMPFILE 2>/dev/null
DATA=`date`
echo "SNR: down($DOWN), up($UP) -- $DATA" >> $LOGFILE
sleep $INTERVALLO
done;
ciao ;)
REPERGOGIAN
23-07-2006, 21:49
ti ringrazio tanto
lo provo subito
REPERGOGIAN
23-07-2006, 22:31
scusa se c'ho messo un pò...
funziona..sei un mito..complimenti :O :ave:
ecco l'output:
.....
SNR: down(18.4 db), up(14.5 db) -- dom lug 23 23:23:58 CEST 2006
SNR: down(18.4 db), up(14.5 db) -- dom lug 23 23:24:08 CEST 2006
SNR: down(18.4 db), up(14.5 db) -- dom lug 23 23:24:18 CEST 2006
.....
ora ti volevo chiedere due cosette:
per lanciare il tuo programma apro konsole incollo il codice (anche senza essere loggato da root ho visto)
e pare si lanci da solo(scusa queste banalità ma sono solo poche ore che sono su linux) infatti funziona:
se volessi terminarlo come faccio?
basta chiudere la konsole o devo andare nel "task manager" di kubuntu e killare qualcosa?nello specifico come è identificato questo programma nel task manager?
il file di output ha delle dimensioni limite?
se lo lascio acceso per 24 ore di fila non succede nulla di strano, vero?
grazie ancora
mi hai fatto un bel regalo :)
solo una precisazione
per far aprire la porta telnet occorre linkare una ghost page prima:
http://192.168.0.1/setup.cgi?todo=debug
basta aggiungerla in testa al file comandi cosi' funziona anche senza farlo a mano
altra cosa più spartana ma sufficiente penso, cioè mettendo uno sleep 1800 (va bene ogni mezz'ora? )a fine ciclo
in questo modo rileverà ogni 1/2 ora
EDIT: c'e' già :D
pero' penso che ogni 1/2 ora o 15 minuti sia sufficiente no???
puoi variare il valore intervallo a 900
per killare il processo basta che o individui il numero pid (ps -e) e poi fai kill pid oppure puoi fare senza bisogno di sapere il pid killall -9 nomefile
per eseguirlo in background basta che lo invochi ./nomefile &
REPERGOGIAN
23-07-2006, 22:49
io devo fare il loop ogni 5 secondi massimo
ho variazioni grosse in certe ore
REPERGOGIAN
23-07-2006, 23:04
per killare il processo basta che o individui il numero pid (ps -e) e poi fai kill pid oppure puoi fare senza bisogno di sapere il pid killall -9 nomefile
per eseguirlo in background basta che lo invochi ./nomefile &
sai che non ho capito come si chiama questo programmino?
i comandi kill pid
e killall -9 nomefile li devo fare da Konsole? credo di si
ma sto nomefile qual è? :muro: :muro:
scusa ma il file che esegue tutto di cui sopra, l'avrai pure chiamato in qualche modo no ???
REPERGOGIAN
26-07-2006, 22:10
scusa ma il file che esegue tutto di cui sopra, l'avrai pure chiamato in qualche modo no ???
ah ok
adesso ho capito
ci sono volute 24 ore
ma adesso ho capito
non gli avevo dato nessun nome
perchè VICIUS mi aveva detto di copiare lo script in nano
e cosi' facevo!
invece adesso ho copiato lo script in un foglio di testo
che ho nominato prog
e adesso da nano scrivo sh prog e parte...
con i miei tempi ma poi ci arrivo :sofico:
un saluto a VICIUS :O
REPERGOGIAN
27-07-2006, 09:27
ciao VICIUS
se hai ruby a portata di mano
potresti controllare come mai questo non funza?
(mi da errori quando da prompt di windows digito ruby reader.rb)
require 'open-uri'
log = File.new("stats.log", "a+")
data = []
while true do
i = 0
open( "http://iprouter/stattbl.htm",:http_basic_authentication=>["admin",
"password"] ).each do |page|
page.each do |html|
case html
when /<span.*>.*kbps<\/span>/
html.each { |line|
line.sub(/<span.*>(.*)kbps/) { data[i] = $1.strip }
}
i+=1
end
end
end
log.write "SNR: down(#{data[0]}) up(#{data[1]}) -- #{Time.now.to_s}\n"
sleep 3
end
log.close
grazie
REPERGOGIAN
30-07-2006, 17:39
http://img129.imageshack.us/img129/7690/00022032ew6.gif
:muro:
ma quello script e' rozzissimo :D
molto meglio se accedeva via telnet...
cmq fate prima a usare http://dmt.mhilfe.de/ DMT (per il DG834GT serve la 8.04)
(spuntate special logon e provate 2 volte a fare connect, e' per via del fatto che il telnet non e' sempre attivo...)
ps: non disperate, la 8.04 e' anche in inglese, basta cambiare la lingua dalle opzioni
REPERGOGIAN
13-12-2006, 11:38
ma quello script e' rozzissimo :D
molto meglio se accedeva via telnet...
cmq fate prima a usare http://dmt.mhilfe.de/ DMT (per il DG834GT serve la 8.04)
(spuntate special logon e provate 2 volte a fare connect, e' per via del fatto che il telnet non e' sempre attivo...)
ps: non disperate, la 8.04 e' anche in inglese, basta cambiare la lingua dalle opzioni
ciao bracco.
è rozzo ma per lo meno è l'unico che esista e che funziona :D
e cmq la web interface è accessibilissima anche se quello gira
almeno io ricordo cosi'.
se tu riuscissi a fare qualcosa di integrato nel GT
sarebbe molto comodo soprattutto perchè chi usa windows
quello script non lo può usare facilmente diciamo.
un grazie ancora a vicius :O
ciao bracco.
è rozzo ma per lo meno è l'unico che esista e che funziona :D
e cmq la web interface è accessibilissima anche se quello gira
almeno io ricordo cosi'.
se tu riuscissi a fare qualcosa di integrato nel GT
sarebbe molto comodo soprattutto perchè chi usa windows
quello script non lo può usare facilmente diciamo.
un grazie ancora a vicius :O
na sul router no per vari motivi
1)il filesystem e' readonly, e anche facendogli scrivere il log nella parte ram, la memoria non e' molta e non e' bello avere uno script che lentamente la succhia via tutta
2)se il log fosse sul router dovresti comunque avere uno script locale sul pc che lo preleva, e quello dipende dal sistema
cmq DMT ha anche la funzione di monitoring e logging, quindi non dovrebbero esserci problemi
REPERGOGIAN
13-12-2006, 12:05
ok
allora per windows provo col DMT.
ciao :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.