Aller plus loin avec une livebox Sagem
janvier 21, 2008
Bon soyons sérieux, je déteste la LiveBox, seulement c’est le seul moyen d’avoir TV et Telephone chez Orange…
Il ne s’agit pas d’un appareil professionnel et pour lui faire cracher ne serait-ce que quelques valeurs comme la marge de bruit il faut se lancer dans tout un mic mac telnet machin truc chouette … (et j’en passe…).
Bref comme j’ai passé mon dimanche à triturer ce bout de ferraille, voici quelques brides de mes recherches.
L’interface Web de la live box permet d’obtenir ces valeurs, seulement pour automatiser sa récupération …prout…
Comme la livebox dispose AUSSI du service telnet j’ai commencé par chercher les valeurs nécessaires : user:root / pass:1234
Ensuite on se retrouve dans le système suivant :
[ root @ home ] $ adsl [ root @ adsl ] $ mon ADSL Monitoring is Successful. The values are: adslLineStatus : Opérationnel adslMode : G992_5_A Upstream = 944 Kb ( Intlv[LP0] ) Downstream = 8524 Kb ( Intlv[LP0] ) ================================================= DIAG Info : ================================================= Attenuation ( dB ) : 29.2 12.3 (FE) SNR margin ( dB ) : 10 13 (FE) HEC counter : 956 CRC counter : 131 RTFirmwareVer : 0x0c16010c
Superbe j’ai tous ce que je voulais et même plus. Il ne reste plus qu’à me faire un petit script pour automatiser tout cela :
#!/usr/bin/perl
# A Script to get LiveBox ADSL status by Bodman@wanadoo.fr # standard output : # Up:944 Down:8524 LocalAtt:29.2 TermAtt:12.3 LocalSNR:10 TermSNR:13 HEC:960 CRC:135 # Reason to get no output : # no host param # bad user/password ( <> root/1234 ) # bad adsl monitoring output ( <> 18 lines ) # livebox stress
# Get host,user,pass ( root / 1234 default )
if ($ARGV[0] ne "") { $host = $ARGV[0]; } else { exit(); }
if ($ARGV[1] ne "") { $user = $ARGV[1]; } else { $user = 'root' }
if ($ARGV[2] ne "") { $pass = $ARGV[2]; } else { $pass = '1234' }
# Get Telnet env
use Net::Telnet;
$telnet = new Net::Telnet ( Timeout=>20 );
$telnet->errmode(sub {die @_ unless $_[0] =~ /eof/});
# Telnet Login $telnet->open($host); $telnet->login($user,$pass);
#Go to adsl env and get monitoring
$telnet->cmd("adsl");
@tableau = $telnet->cmd("mon");
#End Telnet session in good condition
$telnet->cmd("exit");
$telnet->cmd("exit");
$telnet->close;
if (@tableau == 18) #good data
{
# FORME DU TABLEAU #===================================================== #... #5 Upstream = 944 Kb ( Intlv[LP0] ) #6 Downstream = 8524 Kb ( Intlv[LP0] ) #... #10 Attenuation ( dB ) : 29.2 12.3 (FE) #11 SNR margin ( dB ) : 12 13 (FE) #12 HEC counter : 956 #13 CRC counter : 131 #... #=====================================================
#Prepare data @tableau[5] =~ s/^.* = ([0-9]*) Kb.*$/Up:\1 /; @tableau[6] =~ s/^.* = ([0-9]*) Kb.*$/Down:\1 /; @tableau[10] =~ s/^.*:[^0-9]*([0-9.]*)[^0-9]*([0-9.]*).*$/LocalAtt:\1 TermAtt:\2 /; @tableau[11] =~ s/^.*:[^0-9]*([0-9.]*)[^0-9]*([0-9.]*).*$/LocalSNR:\1 TermSNR:\2 /; @tableau[12] =~ s/^.*:[^0-9]*([0-9.]*).*$/HEC:\1 /; @tableau[13] =~ s/^.*:[^0-9]*([0-9.]*).*$/CRC:\1 /;
# cut \n chop(@tableau);
#print data print @tableau[5]; print @tableau[6]; print @tableau[10]; print @tableau[11]; print @tableau[12]; print @tableau[13];
}
exit();
Avec ça on trouve une sortie compatible avec cacti :
./adsl_livebox.pl 192.168.1.1
Up:944 Down:8524 LocalAtt:29.2 TermAtt:12.3 LocalSNR:10 TermSNR:13 HEC:960 CRC:135
Chouette je n’ai plus qu’à faire de beaux graphiques
? rewop gnireenigne esrever
j’espère que le service telnet en question n’est pas accessible depuis n’importe où sur le réseau (wifi?)
Non non, le mdp est publié sur certains forums. Par contre, oui c’est accessible en wifi … pour les utilisateurs oranges … WEP/WPA obligatoire sinon pan pan cul cul!
Salut,
Merci pour ce script
Je l’utilise pour générer un graph sous munin, mais j’ai l’impression que ces chiffres ne bouge pas :s
Sinon j’aurai voulu savoir, serais-tu si s’est possible de recupérer le trafic (quand on va dans le panneau d’admin web, menu avancé, Statistiques, Statistiques système et onglet traffic) on peut voir les Octets reçus et envoyés.
En telnet j’ai fouillé un peu mais rien trouvé :s
Fut un temps ou j’avais essayé de le trouver sans succès.
Salut,
Cette aprem j’en ai profité pour faire des recherches sur la livebox, je suis tombé sur un blog plutôt sympa avec pleins de truc et astuce, et qui permet d’avoir un accès superuser en root via telnet et du coup avoir accès au shell.
Je suis entrain de réaliser un tuto pour générer des graph sous munin, je voulais te demander par la même occassion si je peux utiliser/modifier ton script
Tu peux voir un aperçu du tuto ici:
http://www.websweet.fr/2009/05/16/monitorer-sa-livebox-avec-munin/
et le blog en question pour tout les truc et astuce de la livebox:
http://liveboxsagem11.centerblog.net/6177586-
Tiens moi au courant
[...] aux plugins munin, je me suis inspiré du script de bodman visible ici http://bodman.wordpress.com/…/aller-plus-loin-avec-une-livebox…; pour faire transiter les infos Sa m’a permi de découvrir perl par la même [...]
Pas de soucis