rene-d / sysbus

Contrôle par script d'une Livebox 2, 3 et 4
http://rene-d.github.io/sysbus/
MIT License
153 stars 28 forks source link

Statistique & fibre #28

Open nicolab28 opened 3 years ago

nicolab28 commented 3 years ago

Venant de chez Free, avec une delta, je suis nouveau dans le monde d'Orange, de la Fibre, le tout sur une LB5. Je n'arrive pas à trouver des informations sur une activité de type numérique, du réseau passant par la livebox. Mon objectif, serait de voir les débits montant et descendant "instantanés" utilisés.

rene-d commented 3 years ago

Bonjour,

En ADSL tu peux avoir les débits (théoriques) des liens up et down.

En fibre, je ne crois pas... je ne me souviens pas avoir trouvé ce genre d'information. Il faut regarder dans l'interface web ou l'app sur smartphone. Si l'info n'est pas disponible, tu ne l'auras. Les infos exposées sont celles auxquelles ont accès, ni plus ni moins.

nicolab28 commented 3 years ago

Merci, Dans l'application My Livebox, il y a bien les informations de débit, consommés, montant descendant, avec un historique. C'est mis à jours tous les 30s, mais c'est mieux que rien... Il y a une méthode pour voir comment l'appli les récupère?

rene-d commented 3 years ago

Ah, c'es peut=être nouveau, parce que je n'avais pas trouvé ces infos pour la fibre. Pour trouver les informations: wireshark, mode développeur du navigateur web, ...

nicolab28 commented 3 years ago

J'avouerai ne pas l'avoir vu avant de lire ton premier message. Je vais voir si on peut faire un wireshark sur une appli android. Je viens de tester une appli de capture de trame, mais elle passe par un vpn, et du coup, l'appli d'Orange bloque la connexion à distance.

nicolab28 commented 3 years ago

Screenshot_2021-01-14-17-07-30-381_com orange mylivebox fr

rene-d commented 3 years ago

je ne trouve pas ces infos ni dans l'app iOS ni sur la page web ! il faudrait que j'essaie avec un Android.

il y a des proxies genre https://www.charlesproxy.com ou (plus manuellement) haproxy, nginx, etc. qui permettent de s'intercaler entre un téléphone et un équipement. ou un switch administrable avec port mirroring... :) il doit même y avoir un exemple ici : https://github.com/rene-d/sysbus/tree/master/misc :) ou utiliser un émulateur Android (ou iOS) pour faire tourner Wireshark sur l'ordi. ni l'interface d admin web ni l'app n'utilise https.

nono303 commented 3 years ago

ahhhhh :)

POST /ws HTTP/1.1
Authorization: X-Sah xxxxxxxxxxxxxxxxxxxxx
Content-Type: application/x-sah-ws-4-call+json; charset=utf-8
Content-Length: 102
Host: X.X.X.X
Connection: Keep-Alive
Accept-Encoding: gzip
Cookie: xxxxxx/sessid=xxxxxx
User-Agent: okhttp/4.5.0

{"service":"HomeLan","method":"getDeviceResults","parameters":{"Seconds":259200,"NumberOfReadings":0}}
HTTP/1.1 200 OK
Server: Grom
Date: Fri, 15 Jan 2021 06:56:26 +0000
Content-Type: application/x-sah-ws-4-call+json; charset=UTF-8
X-Content-Type-Options: nosniff
Cache-Control: no-store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache
Transfer-Encoding: chunked

2000
{"status":{"F4:XX:XX:XX:XX:XX":{"Interface":"eth1","Traffic":[  
{"Timestamp":1610693769,"Rx_Counter":166688,"Tx_Counter":146896},    {"Timestamp":1610693739,"Rx_Counter":163336,"Tx_Counter":110488},    {"Timestamp":1610693709,"Rx_Counter":156704,"Tx_Counter":130912},    {"Timestamp":1610693679,"Rx_Counter":251440,"Tx_Counter":206728},  {"Timestamp":1610693649,"Rx_Counter":906240,"Tx_Counter":386160},
...   

pcap obtenu avec https://play.google.com/store/apps/details?id=app.greyshirts.sslcapture recupération OK avec ma "gateway" en PHP

...
$retour["traffic"] = (json_decode(Common::curlPost($url.$endpoint,'{"service":"HomeLan","method":"getDeviceResults","parameters":{"Seconds":259200,"NumberOfReadings":0}}',$ch, $optsupp)["body"],true))["status"];
...

@rene-d, dispo pour creuser les autres infos dispos ;)

nono303 commented 3 years ago

Séquence dédoublonnée des appels :

{":"UserManagement","method":"getUser","parameters":{"name":"XXXX"}}
{":"sah.Device.Information","method":"createContext","parameters":{"applicationName":"MaLivebox","username":"XXXX","password":"XXXX"}}
{":"NeMo.Intf.guest","method":"getIntfs","parameters":{"flag":"wlanvap","traverse":"down"}}
{":"NeMo.Intf.lan","method":"getMIBs","parameters":{"flag":"wlanradio  || eth || wlanvap","traverse":"down"}}
{":"NeMo.Intf.lan","method":"getMIBs","parameters":{"mibs":"wlanvap || wlanradio","flag":"","traverse":"down"}}
{":"SpeedTest","method":"get","parameters":{}}
{":"AutoDiag","method":"listDiagnostics","parameters":{}}
{":"HomeLan","method":"getDevicesStatus","parameters":{}}
{":"HomeLan","method":"getStatus","parameters":{}}
{":"NeMo.Intf.lan","method":"getMIBs","parameters":{"mibs":"wlanvap","flag":"","traverse":"down"}}
{":"TopologyDiagnostics","method":"buildTopology","parameters":{}}
{":"Devices","method":"get","parameters":{"expression":{"ip_devices":"not  self && (eth || wifi) && .Active == false"}}}
{":"Scheduler","method":"getCompleteSchedules","parameters":{"type":"ToD"}}
{":"NMC","method":"get","parameters":{}}
{":"VoiceService.VoiceApplication","method":"listTrunks","parameters":{}}
{":"NMC","method":"getWANStatus","parameters":{}}
{":"PnP","method":"get","parameters":{}}
{":"NMC.OrangeTV","method":"getIPTVStatus","parameters":{}}
{":"DeviceInfo","method":"get","parameters":{}}
{":"Scheduler","method":"getSchedule","parameters":{"type":"WLAN","ID":"wl0"}}
{":"OrangeRemoteAccess","method":"get","parameters":{}}
{":"NMC.Guest","method":"get","parameters":{}}
{":"NMC.WlanTimer","method":"getActivationTimer","parameters":{"InterfaceName":"guest"}}
{":"NMC.Wifi","method":"get","parameters":{}}
{":"UserInterface","method":"getState","parameters":{}}
{":"NeMo.Intf.data","method":"getMIBs","parameters":{"mibs":"dsl","flag":"","traverse":"down"}}
{":"HomeLan","method":"getDeviceResults","parameters":{"Seconds":259200,"NumberOfReadings":0}}
{":"HomeLan","method":"getResults","parameters":{"Seconds":259200,"NumberOfReadings":0,"InterfaceName":["xDSL","WAN_Ethernet","WAN_GPON","ADSL-IPTV_Live1","ADSL-IPTV_Live2","ADSL-IPTV_VOD","ADSL-IPTV_Zapping","VDSL-IPTV","WAN_Ethernet-IPTV_VOD","WAN_Ethernet-IPTV_Live"]}}

la dernière renvoie aussi les Tx & Rx par interface...

nicolab28 commented 3 years ago

C'est l'appli que j'avais utilisé hier, mais je n'avais plus de réponse de l'appli Orange, car je n'était pas sur place. Du coup, c'est quoi l'url?

Sinon, pour Rene-d, on trouve ces informations dans l'application Ma Livebox, en cliquant sur la roue crantée, puis juste au dessus du test de débit "pur".

(edit: screenshot supprimé, il y a le numéro)

nono303 commented 3 years ago

@nicolab28 l'url est http://192.168.x.x/ws mais pour récupérer les données "à la main" il faut s'authentifier avec {":"sah.Device.Information","method":"createContext","parameters":{"applicationName":"MaLivebox","username":"XXXX","password":"XXXX"}} et réinjecter le cookie & contextID dans les request headers

nicolab28 commented 3 years ago

Merci Question conne... ws comme websocket?

nono303 commented 3 years ago

Merci Question conne... ws comme websocket?

nop! webservice ;)

nicolab28 commented 3 years ago

Perso, j'utilise une librairie NodeJS et elle utilise so_sdkut comme applicationName. C'est quoi la différence avec MaLivebox? Je viens de tester, et à priori rien...

Et quand je fais une requête avec "HomeLan","method":"getDeviceResults" je n'ai des résultats que sur eth4, alors que j'utilise les 4 ports LAN de la box

{ "status": { "48:D6:D5:89:C0:EE": { "Interface": "eth3", "Traffic": [] }, "1C:83:41:28:1B:3F": { "Interface": "eth1", "Traffic": [] }, "10:E7:C6:F6:3C:77": { "Interface": "eth4", "Traffic": [] }, "38:0B:3C:E9:56:C0": { "Interface": "eth3", "Traffic": [] }, "D8:6C:E9:3A:FB:76": { "Interface": "eth4", "Traffic": [ { "Timestamp": 1610697932, "Rx_Counter": 1438512, "Tx_Counter": 1621832 }, { "Timestamp": 1610697330, "Rx_Counter": 1007080, "Tx_Counter": 412728 }, { "Timestamp": 1610696728, "Rx_Counter": 443864472, "Tx_Counter": 3118984 } ] }, "54:10:EC:36:83:88": { "Interface": "eth2", "Traffic": [] } } }

nicolab28 commented 3 years ago

Ok j'ai tous eth dans getResults

nicolab28 commented 3 years ago

Il y a même les traffic GPON

rene-d commented 3 years ago

Sinon, pour Rene-d, on trouve ces informations dans l'application Ma Livebox, en cliquant sur la roue crantée, puis juste au dessus du test de débit "pur".

je viens d'essayer avec l'app Android... et il y a une différence avec celle pour iOS. Je comprends maintenant pourquoi je ne trouvais pas ces données. La page d'accueil est la même, mais pas quand on appuie sur la roue.

Quant à creuser la MIB de la lb5, à voir...

nono303 commented 3 years ago

Salut, Vous savez à quoi correspondent les valeurs Rx_Counter & Tx_Counter ?

nono303 commented 3 years ago

...Cela semble correspondre au nombre de bits sur 30 secondes : Divisé par 240 est cohérent avec du bytes/sec

smlpdocin commented 3 years ago

Bonjour, Merci @rene-d pour ce développement. Et du coup, quelqu'un arrive à grapher les statistiques Fibre, et obtenir quelquechose de cohérent?

rene-d commented 3 years ago

Bonjour, Merci @rene-d pour ce développement. Et du coup, quelqu'un arrive à grapher les statistiques Fibre, et obtenir quelquechose de cohérent?

Merci :) Je ne sais pas. L'app Android permet de récupérer des stats, contrairement à celle pour iOS. C'est donc faisable.

nono303 commented 3 years ago

Salut @smlpdocin Un exemple de ce que je graphe de mon coté (php > opentsdb > grafana) Untitled et j'ai les mêmes graphs pour chaque device connecté

ternium1 commented 2 years ago

Je suis en train d'essayer d'intégrer les données de débits de ma lb5 sur Zabbix, et pour l'instant en exécutant .\sysbus.py sysbus.HomeLan:getResults NumberOfReadings=1 j'arrive a avoir qu'une seule donnée de trafic par interface ce qui est un bon début. Je compte après intégrer tout ca à une weathermap faite sur Grafana

Pour ce qui est de l'unité @nono303 as raison: c'est bien du bits/30 secondes (j'ai comparé avec ce que me donnait l'application sur Android, donc en divisant par 30 000 000 on obtient bien du mpbs