Aller plus loin avec une livebox Sagem

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🙂

7 réflexions sur “Aller plus loin avec une livebox Sagem

  1. 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!

  2. 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

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s