PDA

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

VICIUS
23-07-2006, 18:08
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

VICIUS
23-07-2006, 21:47
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 :)

Stev-O
23-07-2006, 22:45
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:

Stev-O
24-07-2006, 01:20
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:

Braccop
13-12-2006, 11:34
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

Braccop
13-12-2006, 11:58
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 :)