Outils Les bricolages de Heffgé

Connexion / Déconnexion

Se déconnecter d'internet comme avec un modem

De nombreuses personnes qui ont commencé à utiliser une connexion ADSL via un modem USB ou ethernet s'étonnent, après avoir opté pour un modem routeur (ou n'importe quelle Freebox, Livebox ou autre boi-boîte FAI), de ne plus voir dans la zone de notification l'icône qui leur permettait, à volonté, de se connecter à internet ou de couper cette connexion. Rien de plus normal puisque c'est le routeur qui est connecté à internet et non plus leur ordinateur. Pour se déconnecter d'internet il existe néanmoins d'autres solutions.

On peut par exemple tout simplement désactiver l'adaptateur réseau ethernet ou Wifi. Cette manipulation s'effectue facilement si l'on a demandé l'affichage du témoin de connexion dans la zone de notification. Un clic droit sur cette icône affiche le menu contextuel qui permet la désactivation. La réactivation est plus compliquée puisqu'il faudra passer par la cascade de menus Démarrer/Paramètres/Connexions réseau.

Une autre solution moins radicale consiste à demander au pare-feu, si celui-ci le permet, de bloquer tout flux en provenance ou à destination d'internet.

Il est également possible d'intervenir sur le routeur si celui-ci offre une option de connexion à la demande mais ceci impose de passer par les menus de configuration de l'appareil.

Dans le cas où l'adresse IP de la connexion est attribuée automatiquement par le serveur DHCP (dynamic host configuration protocol) du routeur la commande ipconfig permet à volonté de couper le lien avec le réseau local ou de le rétablir (ipconfig /release_all et ipconfig /renew_all). Ces commandes peuvent être passées par l'intermédiaire de scripts tels que ceux qui sont décrits ci-après.

Dans la pratique il faudra deux scripts, l'un pour la connexion, l'autre pour la déconnexion, chacun ayant son raccourci et son icône propre. Ces scripts vont en même temps permuter leurs icônes. L'icône du raccourci permettant d'effectuer la commande release sera affichée par le programme exécutant la commande renew et réciproquement. Comme on ne sait pas dans quel état on a laissé cette connexion, un troisième script initialisera le système au démarrage.

Toutefois on peut désirer ne bloquer que l'accès à internet et conserver la possibilité d'accéder au réseau local. Pour cela, toujours dans le cas où l'adresse IP est obtenue automatiquement, il suffit de passer en adresse IP manuelle sans mettre d'adresse de passerelle. En repassant en adresse IP obtenue automatiquement on rétabli l'accès à internet. La commande netsh (non disponible sous Windows 9x) permet d'automatiser ce processus.

Là aussi, et pour les mêmes raisons, 3 scripts seront nécessaires : coupure, rétablissement et initialisation.

Deux modes de réalisation sont proposés, des fichiers de commandes (bat) et des scripts WSH (vbs). Passer par vbs ne raccourci pas le délai d'exécution de manière significative mais permet de masquer la fenêtre DOS fugitive.

Dispositions communes

Afficher une icône dans la zone de notification nécessite l'utilisation d'autres outils que ceux dont on dispose dans un fichier de commandes ou dans un script vbs. Le parti a donc été pris d'utiliser la barre de lancement rapide. On pourrait tout aussi bien se servir d'une barre d'outils personnelle. Pour faciliter l'adaptation a ses préférences, le nom du répertoire qui contient les raccourcis auxquelles les icônes connecté/déconnecté correspondent est affecté à une variable. Il en est de même pour le nom du répertoire destiné à recevoir les scripts, celui choisi ici étant tout à fait arbitraire.

Les conventions de nommage adoptées sont les suivantes : les 3 scripts portent les noms ip_rel, ip_ren et ip_ini (respectivement déconnexion, connexion et initialisation). Les raccourcis correspondant portent des noms identiques à ceux des fichiers auxquels ils renvoient. Il faut donc modifier les noms que Windows leur donne par défaut. Seule l'extension fait la distinction entre un fichier et son raccourci. Bien que l'extension d'un fichier de type raccourci n'apparaisse pas dans l'Explorateur Windows, elle existe cependant bel et bien (pif pour une application DOS, lnk pour une application Windows).

On trouvera des icônes parlantes indiquant l'état connecté ou déconnecté dans le fichier C:\WINDOWS\system32\netshell.dll (C:\Windows\System\Rnaapp.exe pour Windows 9X).

Ces scripts comportent un dispositif de neutralisation d'un éventuel lancement en double généré, par exemple, par un double-clic intempestif.

Attention ! Si les noms comportent des signes diacritiques, comme c'est le cas par exemple avec le é de "réseau", la saisie et les modifications devront être effectuées avec edit à partir d'une fenêtre de commandes et non avec le bloc-notes.

Mise en œuvre

Compte tenu de la brièveté de chacun de ces programmes, ils ne sont pas disponibles sous forme téléchargeable. Il faut donc faire un copier-coller vers le bloc-notes et les enregistrer dans le répertoire de son choix.

Dans chacun des scripts, adapter les valeurs affectées aux variables QL et RPT à ses choix personnels. Placer ces scripts dans le répertoire choisi et y créer un raccourci pour chacun. Renommer les raccourcis comme indiqué ci-dessus puis déplacer celui correspondant à ip_ini vers le répertoire Démarrage :
- sous Windows 9x : C:\Windows\Menu Démarrer\Démarrage ;
- sous Windows 2000, XP, etc. : C:\Documents and Settings\nom_utilsateur\Menu Démarrer\Programmes\Démarrage.

Redémarrer la machine ou la session.

Fichiers de commandes avec ipconfig

Le fichier ip_ini.bat :

@echo off
set QL="C:\Documents and Settings\nom_utilsateur\Application Data\Microsoft\Internet Explorer\Quick Launch"
set RPT="C:\Outils"
if exist %QL%\ip_rel.pif goto fin
if exist %QL%\ip_ren.pif del %QL%\ip_ren.pif
copy %RPT%\ip_rel.pif %QL% > nul
:fin

Le fichier ip_ren.bat :

@echo off
set QL="C:\Documents and Settings\nom_utilsateur\Application Data\Microsoft\Internet Explorer\Quick Launch"
set RPT="C:\Outils"
if not exist %QL%\ip_ren.pif goto fin
del %QL%\ip_ren.pif
ipconfig /renew_all > nul
copy %RPT%\ip_rel.pif %QL% > nul
:fin

Le fichier ip_rel.bat :

@echo off
set QL="C:\Documents and Settings\nom_utilsateur\Application Data\Microsoft\Internet Explorer\Quick Launch"
set RPT="C:\Outils"
if not exist %QL%\ip_rel.pif goto fin
del %QL%\ip_rel.pif
ipconfig /release_all > nul
copy %RPT%\ip_ren.pif %QL% > nul
:fin

L'utilisation des variables d'environnement QL et RPT n'est pas une obligation mais permet d'abréger les lignes de commandes où elles apparaissent.

Dans la variable QL nom_utilsateur est à remplacer par le nom du compte désiré.

Pour Win 9x le répertoire contenant Quick Launch est C:\WINDOWS\Application Data\Microsoft\Internet Explorer.

Scripts WSH avec ipconfig

Le fichier ip_ini.vbs :

ql = "C:\Documents and Settings\nom_utilsateur\Application Data\Microsoft\Internet Explorer\Quick Launch"
rpt = "C:\Outils"
Set fso = CreateObject("Scripting.FileSystemObject")
on error resume next
fso.DeleteFile(ql & "\ip_re*.lnk")
fso.CopyFile rpt & "\ip_rel.lnk", ql & "\"

Le fichier ip_ren.vbs :

ql = "C:\Documents and Settings\nom_utilsateur\Application Data\Microsoft\Internet Explorer\Quick Launch"
rpt = "C:\Outils"
set fso = CreateObject("Scripting.FileSystemObject")
on error resume next
fso.DeleteFile ql & "\ip_ren.lnk"
if err.number = 0 then
    Set sh = WScript.CreateObject("WScript.Shell")
    sh.Run "ipconfig /renew_all", 0, true
    fso.CopyFile rpt & "\ip_rel.lnk", ql & "\"
end if

Le fichier ip_rel.vbs :

ql = "C:\Documents and Settings\nom_utilsateur\Application Data\Microsoft\Internet Explorer\Quick Launch"
rpt = "C:\Outils"
set fso = CreateObject("Scripting.FileSystemObject")
on error resume next
fso.DeleteFile ql & "\ip_rel.lnk"
if err.number = 0 then
    Set sh = WScript.CreateObject("WScript.Shell")
    sh.Run "ipconfig /release_all", 0, true
    fso.CopyFile rpt & "\ip_ren.lnk", ql & "\"
end if

Le contenu des variables ql et rpt doit bien sûr être adapté au contexte comme dans le cas des variables d'environnement utilisées ci-dessus.

Variantes

La liaison avec le réseau local est établie dès le démarrage. On peut toutefois préférer rester déconnecté. Il suffit pour cela de passer la commande release au niveau du fichier ip_ini.

Le fichier ip_ini.bat devient alors :

@echo off
ipconfig /release_all > nul
set QL="C:\WINDOWS\Application Data\Microsoft\Internet Explorer\Quick Launch"
set RPT="C:\Outils"
if exist %QL%\ip_rel.pif del %QL%\ip_rel.pif
if exist %QL%\ip_ren.pif goto fin
copy %RPT%\ip_ren.pif" %QL% > nul
:fin

Et pour le fichier ip_init.vbs on a :

Set sh = WScript.CreateObject("WScript.Shell")
sh.Run "ipconfig /release_all", 0, true
ql = "C:\Windows\Application Data\Microsoft\Internet Explorer\Quick Launch"
rpt = "C:\Outils"
Set fso = CreateObject("Scripting.FileSystemObject")
on error resume next
fso.DeleteFile(ql & "\ip_re*.lnk")
fso.CopyFile rpt & "\ip_ren.lnk", ql & "\"

Fichiers de commandes et scripts WSH avec netsh

On peut utiliser strictement les mêmes sources à la commande passée près. Il suffit de remplacer dans chacun la commande ipconfig par la commande netsh appropriée.

Pour passer en adresse IP manuelle la commande est la suivante :

netsh interface ip set address name="nom_connexion" static adresse_IP masque none

En supposant que le nom de la connexion soit Connexion au réseau local et qu'on souhaite attribuer l'adresse IP 192.168.1.10 on aura :

netsh interface ip set address name="Connexion au réseau local" static 192.168.1.10 255.255.255.0 none

Pour retourner en adresse IP automatique la commande se simplifie :

netsh interface ip set address name="nom_connexion" dhcp

Avec les mêmes hypothèses que ci-dessus on obtient :

netsh interface ip set address name="Connexion au réseau local" dhcp

Pour une connexion en adresse IP manuelle l'accès à internet sera rétabli en utilisant la même commande que pour l'interdire mais en remplaçant none par l'adresse IP de la passerelle. Si celle-ci est 192.168.1.1 on aura donc, dans le même exemple :

netsh interface ip set address name="Connexion au réseau local" static 192.168.1.10 255.255.255.0 192.168.1.1

La suppression de l'adresse IP de la passerelle bloque tout trafic sortant vers internet mais n'est pas une garantie absolue contre une intrusion venant de l'extérieur.

 

Toutes les pages du site Les autres sites

accueil
carnet d'adresses et enveloppes
comparaison de dossiers
connexion/déconnexion
contenu d'un dossier
contrôle GPO
conversion ASCII/ANSI
débrider une Livebox SAGEM ou Inventel ancien modèle
gérer un fichier à générations dans un .bat
les pilotes oubliés
mise à la date et à l'heure automatique
nettoyage et arrêt Windows 9x
orthodromie
vidage du répertoire Temp utilisateur et suppression des fichiers temporaires Internet Explorer (Windows XP et Windows 7)
quelques macros pour Word

Tentatives de bonnes réponses à des questions qui peuvent ne pas l'être

 

Le DOS sied