Accueil > Code > Activer ou désactiver une connexion réseau

Activer ou désactiver une connexion réseau

… depuis un programme. Rien dans le Framework .NET ne permet de le faire… Hum. Du côté de WMI? Non plus. Fichtre! Et si c’était pas possible? Naan. Rien n’est impossible.

Mais parfois, la solution est tordue.

La seule sortie à ce problème est l’usage du NetShell, un petit applicatif en lignes de commande fourni depuis Windows 2000 (OLOL genre des gens utilisent un Windows plus vieux). netsh. Merveilleux.

Alors voilà comment, dans la théorie, on désactive cette chère vieille « Connexion au réseau local »:

 netsh interface set interface "Connexion au réseau local" disabled 

Okay, et pour réactiver? Facile.

 netsh interface set interface "Connexion au réseau local" enabled 

Trop facile. Ah? On me dit que non? WHAT?!

 Les interfaces dédiées ne peuvent pas être connectées, déconnectées, activées ou désactivées. Impossible d'accomplir cette fonction. 

« Interface dédiée »? Wtf? Ma connexion au réseau local est une interface dédiée? Eh ben oui. Aux yeux de Netsh sous Windows 2000/XP en tous cas. Ca fonctionne sous Windows 2003, mais qui est sous Windows 2003? Bon, alors c’est impossible. Non? Aaah.

Un contournement barbare et peu agréable pour notre pauvre OS, quoique néanmoins recommandé par Microsoft, existe:

 netsh interface ip set address "Connexion au réseau local" static 1.0.0.0 255.255.255.0 1.0.0.0 1 

(Dans l’ordre, adresse IP, masque de sous-réseau, passerelle par défaut et métrique)

Vous l’aurez compris, on donne une adresse IP privée à notre adaptateur réseau qui du coup est coupé du monde exterieur et ne laisse plus rien passer. Comme c’est perfide. Et pour réactiver?

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

Et bim, une nouvelle adresse fournie par le DHCP. Ceci sous-entends que le réseau utilise bel et bien un DHCP. Si vous n’en êtes pas certain, pensez à enregistrer les paramètres de connexion (en les récuperant, par exemple, au hasard, à partir de netsh, puisqu’on y est).

Et voilà, à coeur vaillant, rien d’impossible, à OS chiant, ben, non plus. Allez, salut.

Categories: Code Tags:
  1. 06/07/2008 à 03:49 | #1

    Merci pour cette technique :)
    (très beau blog en passant)

  1. 25/11/2014 à 10:01 | #1