Bonjour,
L'année passée, j'ai souffert à cause de problèmes de ligne.
Après des heures de discussion avec la hotline, trois visites de techniciens d'Orange,
la cause de ce problème a été trouvée.
C'était une connexion oxydée dans une boîte de connexion à 50 mètre de ma maison.
Lors de cette expérience, j'ai réalisé que les liveboxes ne fournissent pas
une information détaillée sur la ligne.
J'ai donc écrit un script pour surveiller ma ligne.
Ce script peut être lancé depuis votre domicile ou depuis un autre accès à Internet.
Ce script indique le délai dur dernier reset de la connexion, les débits,
les marges de bruit et les erreurs détectées sur la ligne.
Il fonctionne avec une livebox 2.
Afin d'aider ceux qui veulent avoir plus d'informations sur leurs lignes
je vous le transmets.
Bonne journée.
#!/usr/bin/perl
# Script that connects to a livebox and extract dsl relevant informations
use strict;
use WWW::Mechanize;
use HTTP::Cookies;
use JSON;
# URL to connect to the livebox (http://192.168.1.1 if it is from your home)
#my $liveboxiurl = "https://192.168.1.1";
my $liveboxUrl = "https://xxx.zapto.org:10000";
# Username to connect to the web interface (admin if it is from your home)
#my $user = "admin";
my $user = "xxx";
# Password for the web user
my $pass = "xxx";
# Interval between two queries
#my $sleepTime = "600";
my $sleepTime = "100";
my @mibFields = ('LinkStatus',
'LastChange',
'DownstreamCurrRate',
'DownstreamNoiseMargin',
'DownstreamAttenuation',
'DownstreamPower',
'UpstreamCurrRate',
'UpstreamNoiseMargin',
'UpstreamAttenuation',
'UpstreamPower');
my @dslFields = ("FECErrors", "CRCErrors", "HECErrors");
my ($field, $sec, $min, $hour, $day, $month, $year);
# Set autoflush on stdout, usefull when you redirect to a file
select(STDOUT);
$| = 1;
my $mech=WWW::Mechanize->new(cookie_jar=>HTTP::Cookies->new(),
ssl_opts =>{'verify_hostname'=>0},
timeout=>15);
while (1) {
# Just write the date of the connection
($sec, $min, $hour, $day, $month, $year) = (localtime)[0,1,2,3,4,5];
$year = $year+1900;
$month = sprintf '%02d', $month+1;
$day = sprintf '%02d', $day;
$hour = sprintf '%02d', $hour;
$min = sprintf '%02d', $min;
$sec = sprintf '%02d', $sec;
print $year,$month, $day, $hour, $min, $sec, "/";
# Authenticate
$mech->post("$liveboxUrl/authenticate?username=$user&password=$pass",
Content =>"");
# Set the contextID to use the session that we have just opened
$mech->add_header("X-Context"=>decode_json($mech->content)->{"data"}{"contextID"});
# Get MIB datas
$mech->post("$liveboxUrl/sysbus/NeMo/Intf/data:getMIBs",Content =>'{"parameters":{"mibs":"dsl","flag":"","traverse":"down"}}');
#print to_json(decode_json($mech->content))."\n";
# The iformation is only relevant if the line is up
if (decode_json($mech->content)->{"status"}{"dsl"}{"dsl0"}{'LinkStatus'} eq 'Up') {
foreach $field (@mibFields) {
print "$field:";
print decode_json($mech->content)->{"status"}{"dsl"}{"dsl0"}{$field};
print "\n";
}
# Get dsl informations
$mech->post("$liveboxUrl/sysbus/NeMo/Intf/dsl0:getDSLStats",Content =>'{"parameters":{}}');
foreach $field (@dslFields) {
print "$field:";
print decode_json($mech->content)->{"status"}{$field};
print "\n";
}
} else {
print decode_json($mech->content)->{"status"}{"dsl"}{"dsl0"}{'LinkStatus'};
print "\n";
}
sleep ($sleepTime);
$mech->post("$liveboxUrl/logout", Content =>"");
print "---\n";
}
Hors ligne
Hello,
OK, mais ce n'est pas ce que propose LiveboxMonitor dispo dans ce site qui n'est malheureusement pas mis à jour pour les LB4???
Aussi SHDF fait un peu la même chose avec Liveboxinfo qui est à jour..
Explique nous SVP ce qu'apporte spécifiquement ce sript?
Merci
Cldt
Nota: ayant été abonné à FREE, je rêve d'une prestation telle que celle dispo dans la BOX Révolution qui, en temps réel avec rafraichissement rapide, donne des courbes de marge de bruit et débit... On peut choir des périodes de temps courtes ou longues..
Si la ligne a des accidents ponctuels, on voit très bien ce qu'il se passe et quand..
Dernière modification par guirigui (13-07-2017 16:32:27)
Hors ligne
guirigui a écrit:
Aussi SHDF fait un peu la même chose avec Liveboxinfo qui est à jour..
et LBmonitor
Hors ligne
Bonjour,
Je n'ai pas encore analysé ce que font SHDF et LBmonitor.
Dans mon cas, LiveboxMonitor ne pouvait pas être utilisé
car je n'ai pas de machine Windows.
LiveboxMonitor ne tourne que sous Windows.
Bonne journée.
Hors ligne
Bonsoir.
Il serait judicieux, je pense, de déplacer cette discussion dans la section «Logiciel». Un titre moins générique serait aussi utile.
Une description un peu plus détaillée aiderait aussi.
Au lieu de « reset de la connexion » qui est plutôt ambigu, il faudrait parler de « synchronisation » et de sa durée.
Bref c’est une très bonne initiative et surtout pour les linuxiens (@Markco où es tu ?), qui mérite une plus ample divulgation.
Kudos pour @benoit16 !
Bonne soirée.
Hors ligne
Me voici
Pour les infos de la LB sous Linux, j'utilise l'excellent utilitaire de JoeKer dispo ici :
http://www.forum-orange.com/viewtopic.p … 14#p760114
Hors ligne
Bonsoir.
tkPyDLB n'a d'intérêt que pour une interrogation ponctuelle.
Ce que fait le script de benoit16 ressemble plus à ce que fait LiveboxMonitor ...
Je n'exclus pas de faire l'équivalent en python, mais pour le moment, ça n'est que du projet
@benoit16 : Ton script s'adresse uniquement à la LiveBox2, c'est peut-être un peu dommage (il pourrait peut-être fonctionner sur LB3, mais pas sur LB4 à cause de la méthode d'authentification).
Si j'ai bien compris le script, le "logout" est fait à l'expiration du timer, donc juste avant de faire l'interrogation suivante ...
Je déplace la discussion dans la rubrique "Logiciel"
Hors ligne
Bonjour,
Le logout se fait effectivement après le sleep.
Il aurait peut être été plus judicieux de le faire avant le sleep.
Je ne connais que la LB 2 (Sagem blanche).
Je ne l'ai effectivement pas testé sur d'autres liveboxes.
Bonne journée.
Dernière modification par benoit16 (14-07-2017 14:46:01)
Hors ligne
Merci pour cet outil !
Il me permet de monitorer une livebox distante via un compte admin distant.
Et pour compléter cet outil, il y a le logiciel DatPlot qui permet que faire des graphiques des csv générés par l'outil de Benoit16
Hors ligne
Bonjour,
Je profite du message de Col. Lard pour vous indiquer que j'ai testé ce script sur la Livebox Play. Il fonctionne comme une lettre à la poste.
J'ai de nouveau eu des déconnexions intempestives. La malchance a décidé d'attaquer ma ligne :-) Cela était du à un fil coupé dans le DSLAM.
Le technicien d'orange a profité de son passage pour remplacer ma Livebox 2 par une Livebox Play.
Par conséquent j'ai testé sur cette nouvelle box.
Bonne journée.
Hors ligne