Changer son adresse IP par script ou batch (XP, Vista) Partie 2

Publié le 13 août 2009
Classé dans réseau | 3 commentaires

Avant d’attaquer cette partie je vous conseille de lire :
La première partie

Décortiquons un peu les lignes de commandes :

netsh interface IP set address « Nom-de-la-connexion-réseau » static « Adresse-IP » « Masque »  « Passerelle » « Métrique »

netsh interface IP set DNS « Nom-de-la- connexion -réseau » static « DNS-préféré » primary

netsh interface IP add DNS « Nom-de-la- connexion -réseau » « DNS-secondaire » index=2

netsh (définition de wikipédia) :

« Netsh (network shell : shell réseau) est un utilitaire en ligne de commande inclus dans la gamme des systèmes d’exploitation Windows NT (NT, 2000, XP, 2003 Serveur, Vista) à partir de Windows 2000. Il permet la configuration du réseau, localement ou à distance.

Une utilisation classique de netsh est la réinitialisation la pile TCP/IP à ses paramètres d’origine (Sous Windows 98, cette opération nécessitait la réinstallation de l’adaptateur TCP/IP). Dans ce mode, vous devez fournir à la commande un fichier journal (log). Celui-ci sera rempli avec les valeurs affectées par netsh.

Netsh permet aussi (entre autres) de changer l’adresse IP de la machine. »

Netsh est compatible avec IPv6

Un tour rapide de netsh nous permet de voir toutes les fonctions de base  :

netsh

Nous n’allons pas tout détailler car cette commande est très complète et contient de très nombreuses options. Je vous laisse le soin de faire vos recherches dessus.

La partie qui nous intéresse c’est donc la partie qui permet de gérer les adresses IP des interfaces réseaux. Voici la commande générique :

netsh interface IP set address « Nom-de-la-connexion-réseau » static « Adresse-IP »  » Masque » « Passerelle » « métrique »

Pour trouver le nom de la connexion rien de plus facile pour Windows XP il suffit d’aller dans :

« Démarrer »-> »Paramètres » ou « Panneau de configuration »-> »Connexions réseau »

et dans Windows Vista :

« Démarrer »-> »Panneau de configuration »-> »Centre Réseau et partages »-> »Gérer les connexions réseau »

En général vous devez avoir :

« Connexion au réseau local » pour de l’Ethernet

« Connexion au réseau sans fil » pour les réseaux WIFI

En ce qui concerne l’adresse IP, le masque et la passerelle vous devez les connaitre (après tout c’est vous qui avez configuré ce réseau non?), il nous reste une donnée qui est : « métrique »

Mais qu’est-ce que c’est que ce truc?

La métrique (en français) permet de donner un poids à l’interface.

La métrique est plus souvent utilisé dans le routage et nous pouvons lui donner une image de distance ou de priorité. Si un chemin entre deux routeurs à une métrique de ’20’ et un autre chemin qui relit les deux mêmes routeurs a une métrique de ’10’, alors le chemin utilisé sera le plus court ou le plus prioritaire (donc 10).

Pour les interfaces réseaux c’est le même principe, pour accéder à l’extérieur du réseau (Internet en général) les données vont être orientées vers la métrique la plus faible. Il s’agit ici d’utiliser prioritairement une interface par rapport à une autre.

La métrique sert uniquement dans le cas ou plusieurs interfaces sont connectées en même temps (exemple votre PC est connecté en même temps en WIFI + Câble réseau) et permet d’éviter la perte de paquets ou que le PC soit perdu entre toutes les connexions réseau.

En modifiant la métrique vous aller en fait demander à Windows de sortir sur Internet soit par une interface soit par l’autre, c’est aussi simple que cela.

Si une seule interface réseau est connecté à la fois, la métrique n’a plus d’importance par rapport à l’interface.

Nous avons tout ce qu’il faut pour configurer notre connexion.

Prenons un exemple concret. Vous souhaitez configurer les données suivantes sur votre carte réseau Ethernet :

IP : 192.168.10.100

Masque : 255.255.255.0

Passerelle : 192.168.10.1

DNS1 : 208.67.222.222 (OpenDNS)

DNS2 : 208.67.220.220 (OpenDNS)

Métrique : 1

Il suffira de taper les commandes suivantes dans la fenêtre « Exécuter » de Windows « Win+R » :

netsh interface IP set address « Connexion au réseau local » static 192.168.10.100 255.255.255.0 192.168.10.1 1

netsh interface IP set DNS « Connexion au réseau local » static 208.67.222.222 primary

netsh interface IP add DNS « Connexion au réseau local » 208.67.220.220 index=2

C’est un peu fastidieux n’est-ce pas?

Nous allons donc automatiser tout ça dans la prochaine partie.

Commentaires

3 commentaires sur “Changer son adresse IP par script ou batch (XP, Vista) Partie 2”

  1. rdastyle on 2 août 2010 9 h 55 min

    Bonjour et merci pour ces explications très claires et courtes !

    Le fichier Batch fonctionne parfaitement sous Windows 7. Merci beaucoup pour le temps passé à l’écriture de ce billet.

    Excellente continuation.

  2. Dominique on 11 novembre 2012 8 h 08 min

    Bonjour et merci pour votre script…
    Savez-vous comment faire pour choisir la bonne carte réseau sous windows xp et 2003.

    En effet un serveur peut en avoir plusieurs et je n’arrive qu’à en sélectionner qu’une sur ces systèmes, et toujours la même.

    Sur vista et 2008 et sup. La question ne se pose pas car il existe un n° index qui permet de sélectionner la carte ethernet.

    Merci

  3. Chris... on 13 décembre 2012 11 h 00 min

    Bonjour,

    Je vous réponds un peu tard, (mon boulot me laisse peu de temps pour mettre à jour le site), la première solution serait de renommer les carte réseaux (ex : LAN1, LAN2,… ou des noms plus explicites) et de modifier le script en donnant le bon nom de carte réseau.
    Sinon vous devriez avoir un nom générique « Connexion au réseau local 1, 2,… Connexion au réseau sans-fil, ou autre dénomination), Dans le cas de réseau multiples, je préconise de de renommer les connexions afin d’y voir plus clair surtout dans le cadre de virtualisation ou le nombre de carte LAN explose.

Laisser une réaction




IMPORTANT! Afin de valider votre commentaire, Vous devez résoudre la formule mathématique suivante (Ceci nous permet de valider que vous êtes bien humain) :-)

Combien font 2 (+) 3 ?
Please leave these two fields as-is: