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 in un file.txt http://img159.imageshack.us/my.php?image=yoda6.png
ecco un esempio
dove si legge il margine del download poi quello dell’upload e l’orario
mi hanno detto di fare uno script dalla shell di linux
o usare ruby se sono con windows
altrimenti posta il codice sorgente della pagina di esempio e in 4/5
righe di codice lo si fa.
:tele
ciao
dunque
se ti riferisci alla pagina che ho linkato
non ho purtroppo il codice
però un conoscente mi ha fatto(e lo ringrazio anche qui) lo script per
linux e funziona.
tu lo potresti ritoccare con ruby per farlo andare sotto windows?
Molto alla veloce, si puo’ fare decisamente di meglio
se hai bisogno di chiarimenti dimmi
require ‘open-uri’
log = File.new(“stats.log”, “a+”)
data = []
while true do
i = 0
open( “http://127.0.0.1/stats.html” ).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 mille!
ora ho scaricato ruby e il manuale
do una letta per vedere se riesco a far partire da solo questo tuo
script
ti faccio sapere al + presto
p.s
il file di log me lo salverebbe su desktop di windows?
Molto alla veloce, si puo’ fare decisamente di meglio
se hai bisogno di chiarimenti dimmi
require ‘open-uri’
log = File.new(“stats.log”, “a+”)
data = []
while true do
i = 0
open( “http://127.0.0.1/stats.html” ).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
ora ho scaricato ruby e il manuale
do una letta per vedere se riesco a far partire da solo questo tuo
script
ti faccio sapere al + presto
p.s
il file di log me lo salverebbe su desktop di windows?
none te lo salva dove esegui lo script.
mettici il percorso corretto e dovresti essere ok.
ciao
:tele
ciao
dunque
ho installto ruby 1.8.4-20 stable
ha creato scite eccc…
dopo di ciò ho copiato e incollato in scite il tuo script
e lo ho salvato come telereader.rb in una cartella
poi aperto prompt, digito ruby telereader.rb
e mi rida questo messaggio
c:/ruby/lib/ruby/1.8/net/http.rb:560:in initialize': Bad file descriptor - connect(2) (Errno::EBADF ) from c:/ruby/lib/ruby/1.8/net/http.rb:560:inconnect’
from c:/ruby/lib/ruby/1.8/timeout.rb:48:in timeout' from c:/ruby/lib/ruby/1.8/timeout.rb:76:intimeout’
from c:/ruby/lib/ruby/1.8/net/http.rb:560:in connect' from c:/ruby/lib/ruby/1.8/net/http.rb:553:indo_start’
from c:/ruby/lib/ruby/1.8/net/http.rb:542:in start' from c:/ruby/lib/ruby/1.8/open-uri.rb:245:inopen_http’
from c:/ruby/lib/ruby/1.8/open-uri.rb:629:in buffer_open' from c:/ruby/lib/ruby/1.8/open-uri.rb:167:inopen_loop’
from c:/ruby/lib/ruby/1.8/open-uri.rb:165:in open_loop' from c:/ruby/lib/ruby/1.8/open-uri.rb:135:inopen_uri’
from c:/ruby/lib/ruby/1.8/open-uri.rb:531:in open' from c:/ruby/lib/ruby/1.8/open-uri.rb:86:inopen’
from telereader.rb:8
ora
di sicuro sono io che sbaglio…infatti credo di dover mettere delle
variabili
affichè lo script acceda al router e legga i valori, vero?
come nello script per linux ho dovuto mettere mio user, password e ip
anche qui dovrei metterlo ma leggendo le righe non so proprio dove
aggiungerlo…
ho cambiato 127.0.0.1 con l’ip del mio router
ma da prompt poi esce
c:/ruby/lib/ruby/1.8/open-uri.rb:290:in open_http': 401 Unauthorized (OpenURI::HTTPError from c:/ruby/lib/ruby/1.8/open-uri.rb:629:inbuffer_open’
from c:/ruby/lib/ruby/1.8/open-uri.rb:167:in open_loop' from c:/ruby/lib/ruby/1.8/open-uri.rb:165:inopen_loop’
from c:/ruby/lib/ruby/1.8/open-uri.rb:135:in open_uri' from c:/ruby/lib/ruby/1.8/open-uri.rb:531:inopen’
from c:/ruby/lib/ruby/1.8/open-uri.rb:86:in `open’
from telereader.rb:8
dunque con questa modifica siamo a questa situazione
require ‘open-uri’
log = File.new(“stats.log”, “a+”)
data = []
while true do
i = 0
open(
“http://192.168.0.1/stats.html",:http_basic_authentication=>["admin”,
“Enzo”] ).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
ma il nano dice no
ecco il responso
c:/ruby/lib/ruby/1.8/open-uri.rb:290:in open_http': 401 Unauthorized (OpenURI::HTTPError) from c:/ruby/lib/ruby/1.8/open-uri.rb:629:inbuffer_open’
from c:/ruby/lib/ruby/1.8/open-uri.rb:167:in open_loop' from c:/ruby/lib/ruby/1.8/open-uri.rb:165:inopen_loop’
from c:/ruby/lib/ruby/1.8/open-uri.rb:135:in open_uri' from c:/ruby/lib/ruby/1.8/open-uri.rb:531:inopen’
from c:/ruby/lib/ruby/1.8/open-uri.rb:86:in `open’
from reader.rb:8
(forse è normale
ma se nel browser digito http://192.168.0.1/stats.html
mi chiede user e password ma poi rimane una schermata vuota)