|
Quelques scripts vbs, prêts à l'emploi, pour automatiser l'accès à l'interface de configuration de la livebox 2 (ZTE ou Sagem en firmware SoftAtHome), du plus simple (ouverture de l'interface) au plus complexe (récupération des paramètres ADSL dans un fichier).
Un premier script pour ouvrir l'interface de configuration :
'-------------------------------------------------------- 'Ce script ouvre l'interface de la livebox 2
'--------------------------------------------------------
On Error Resume Next
'On lance le navigateur IE set nav = CreateObject("InternetExplorer.Application") nav.Visible = true
'On ouvre la page d'identification et on attend qu'elle soit prête res = nav.navigate("http://livebox/homeAuthentificationRemote.html") Do While not nav.ReadyState = 4 : wscript.sleep 200 : Loop
'On inscrit les identifiants nav.document.All.tags("input").Item("Username").Value = "user" nav.document.All.tags("input").Item("Password").Value = "livebox2"
'On clique res = nav.document.All.tags("input").Item("bt_save").click
Pour information, on pourra adapter ce script pour se connecter à l'administration à distance (après avoir configurée celle-ci dans l'interface de la livebox) ce qui donnera quelque chose comme :
On Error Resume Next set nav = CreateObject("InternetExplorer.Application") nav.Visible = true nav.navigate https://adresse.dyndns.org:23456 Do While not nav.ReadyState = 4 : wscript.sleep 200 : Loop Do While Not nav.document.Title = "Livebox" : wscript.sleep 200 : Loop Do While not nav.ReadyState = 4 : wscript.sleep 200 : Loop res = nav.navigate("https://adresse.dyndns.org:23456/homeAuthentificationRemote.html") Do While not nav.ReadyState = 4 : wscript.sleep 200 : Loop nav.document.All.tags("input").Item("Username").Value = "identifiant" nav.document.All.tags("input").Item("Password").Value = "mot_de_passe" res = nav.document.All.tags("input").Item("bt_save").click
Il faut, bien entendu, indiquer dans ce script votre adresse dyndns, le port choisi (entre 10000 et 30000), votre identifiant et votre mot de passe d'administration à distance (qui doit compter au minimum 8 caractères dont un chiffre et un caractère spécial).
Un second pour tester le téléphone relié à la livebox :
'----------------------------------------------------------------------------- 'Livebox_2 : Script vbs pour tester le téléphone relié à la livebox '-----------------------------------------------------------------------------
On Error Resume Next
'Ouverture du navigateur (IE) set nav = CreateObject("InternetExplorer.Application") nav.Visible = false 'true pour voir le déroulement
'Ouverture de la page d'identification nav.navigate "http://livebox/homeAuthentificationRemote.html" Do While not nav.ReadyState = 4 : wscript.sleep 200 : Loop
'Identification nav.document.All.tags("input").Item("Username").Value = "user" nav.document.All.tags("input").Item("Password").Value = "livebox2" res = nav.document.All.tags("input").Item("bt_save").click
'On attend que la page d'accueil s'ouvre entièrement en testant la présence d'un champ caractéristique comp = 0 res = "" do Until (res = "réseau filaire" or res = "wired network" or comp > 20) comp = comp + 1 res = nav.document.All.tags("div").Item("home-dashboard-wired-label").innertext : wscript.sleep 200 loop
if comp < 20 then 'Ouverture de la page de test nav.navigate "http://livebox/supportPhoneRingTest.html" else msgbox("Problème d'identification") nav.Quit 'On ferme end if
'On attend que la page soit ouverte et on vérifie si la VOIP est disponible comp = 0 res = "" do Until (res = "disponible" or res = "available" or comp > 20) comp = comp + 1 res = nav.document.All.tags("span").Item("Services.Phone").innertext : wscript.sleep 200 loop If comp > 20 then msgbox ("La VOIP ne semble pas disponible") else 'On lance le test pour 10 secondes soit 3 sonneries res = nav.document.All.tags("input").Item("bt_test").click wscript.sleep 10000 end if
'On ferme ! nav.Quit
Un troisième script pour relancer la connexion PPP (changer d'IP WAN) :
'----------------------------------------------------------------------------- 'Livebox_2 : Script vbs pour relancer la connexion PPP de la livebox '-----------------------------------------------------------------------------
On Error Resume Next
'Ouverture du navigateur (IE) set nav = CreateObject("InternetExplorer.Application") nav.Visible = false 'true pour voir le déroulement
'Ouverture de la page d'identification nav.navigate "http://livebox/homeAuthentificationRemote.html" Do While not nav.ReadyState = 4 : wscript.sleep 200 : Loop
'Identification nav.document.All.tags("input").Item("Username").Value = "user" nav.document.All.tags("input").Item("Password").Value = "livebox2" res = nav.document.All.tags("input").Item("bt_save").click
'On attend que la page d'accueil s'ouvre entièrement en testant la présence d'un champ caractéristique res = "" do Until (res = "réseau filaire" or res = "wired network" or comp > 20) res = nav.document.All.tags("div").Item("home-dashboard-wired-label").innertext : wscript.sleep 200 loop
if comp < 20 then 'On ouvre la page connexion à internet nav.navigate "http://livebox/advConfigAccessType.html" else msgbox("Problème d'identification") nav.Quit 'On ferme end if
'On attend que la page soit ouverte comp = 0 res = "" do Until (res = "************" or comp > 20) comp = comp + 1 res = nav.document.All.tags("input").Item("FirstAccessType.WANPPPConnection.Password").Value : wscript.sleep 200 Loop If comp > 20 then msgbox ("Le compte ne semble pas configuré") else 'On relance la connexion res = nav.document.All.tags("input").Item("bt_refresh").click end if
'On ferme ! nav.Quit
'Un beep pour signaler la fin set ws = Wscript.CreateObject("wscript.Shell") : beep = chr(007) : Ws.Run "cmd /c @echo " & beep,0
Et enfin, un script pour récupérer les paramètres ADSL dans un fichier (C:\APEUL.log par défaut) :
'----------------------------------------------------------------------------- 'Livebox_2 : Script vbs pour récupérer périodiquement* les paramètres ADSL '(* à mettre en oeuvre avec le planificateur de tâches de Windows) 'Les résultats sont inscrits dans un fichier au bout d'environ dix secondes. '-----------------------------------------------------------------------------
'Ouverture du fichier d'enregistrement C:\APEUL.log Set fs = CreateObject("Scripting.FileSystemObject") Set fich_ = fs.OpenTextFile("C:\APEUL.log", 8, True) '8 pour écrire à la fin du fichier On Error Resume Next
'Ouverture du navigateur (IE) set nav = CreateObject("InternetExplorer.Application") nav.Visible = false 'true pour voir le déroulement
'Ouverture de la page d'identification nav.navigate "http://livebox/homeAuthentificationRemote.html" Do While not nav.ReadyState = 4 : wscript.sleep 200 : Loop
'Identification nav.document.All.tags("input").Item("Username").Value = "user" nav.document.All.tags("input").Item("Password").Value = "livebox2" res = nav.document.All.tags("input").Item("bt_save").click
'On attend que la page d'accueil s'ouvre entièrement en testant la présence d'un champ caractéristique comp = 0 res = "" do Until (res = "réseau filaire" or res = "wired network" or comp > 20) comp = comp + 1 res = nav.document.All.tags("div").Item("home-dashboard-wired-label").innertext : wscript.sleep 200 loop
if comp < 20 then 'Ouverture de la page Information ADSL nav.navigate "http://livebox/supportSystemInformationAdsl.html" else msgbox("Problème d'identification") nav.Quit 'On ferme end if
'On attend que les paramètres ADSL soient chargés en testant le champ "Total.CRCErrors" comp = 0 CRC = "" Do until (IsNumeric(CRC) or comp > 60) comp = comp + 1 CRC = nav.document.All.tags("div").Item("Total.CRCErrors").innertext : wscript.sleep 200 loop
'Capture des paramètres marges de bruit, débits de synchronisation, ... NMu = " NMus= " & nav.document.All.tags("div").Item("WANDSLInterfaceConfig.UpStreamNoiseMargin").innertext NMd = " NMds= " & nav.document.All.tags("div").Item("WANDSLInterfaceConfig.DownStreamNoiseMargin").innertext Syu = " Sync_us= " & nav.document.All.tags("div").Item("WANDSLInterfaceConfig.UpStreamCurrRate").innertext Syd = " Sync_ds= " & nav.document.All.tags("div").Item("WANDSLInterfaceConfig.DownStreamCurrRate").innertext tem = nav.document.All.tags("div").Item("WANDSLInterfaceConfig.ShowtimeStart").innertext
'Calcul du taux d'erreur CRC par 24 heures (seuil Orange = 360/24h) taux = CInt(86400 * CDbl(CRC) / CDbl(Left(tem,len(tem)-2)))
'Enregistrement dans le fichier fich_.writeline Now & NMu & NMd & Syu & Syd & " Err_CRC= " & CRC & " soit " & taux & "/24h"
'On ferme ! nav.Quit : fich_.close
'Un beep pour signaler la fin set ws = Wscript.CreateObject("wscript.Shell") : beep = chr(007) : Ws.Run "cmd /c @echo " & beep,0
J'espère que ces quelques exemples commentés vous permettront de réaliser les scripts vbs qui correspondent à vos besoins.
Rappel : Il suffit de copier/coller ces lignes de script dans un document texte (.txt) puis de le renommer avec une extension .vbs vbs est un langage de script d'usage général utilisable sous Windows. Ces scripts nécessitent de disposer d'Internet Explorer.
|