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
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:in buffer_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:in open_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:in open’
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)