Rechercher : dans
Par :

Commande DOS + IP

Dernière réponse le 15 mai 2009 à 14:09:07 chamicki, le 30 avr 2009 à 11:33:57 
 Signaler ce message aux modérateurs

Bonjour,

J'utilise des commande Dos pour récuperer la config IP de mon ordi grâce à :
netsh -c interface dump > c:\configordi.txt
ensuite j'écris l'ip le masque dont j'ai besoin comme ceci :
netsh interface ip set address name="Connexion au r‚seau local" source=static addr=10.250.250.251 mask=255.255.255.0
Or, mon programme étant destiné a plusieurs personnes j'aimerai savoir si il serai possible de récupérer dans une variable le nom du réseau local actif et mettre cette variable à la place de "Connexion au r‚seau local" comme cela mon .bat marcherai sur tout les ordinateurs.

Est-ce que quelqu'un sais faire cela ???


Merci d'avance

Chamicki

Meilleures réponses pour « Commande DOS + IP » dans :
Gérer les utilisateurs de XP et Vista grâce aux commandes DOS VoirVoici comment gérer les utilisateurs avec DOS dans XP et Vista. Vous allez me dire, pourquoi passer par DOS si on peut passer par gpedit.msc ? La réponse est simple: gpedit.msc n'est pas dans Vista familial et, dans XP familial, les commandes DOS...
[MS-Dos] Commandes DOS de base VoirCes commandes sont des commandes de base que vous pouvez utiliser dans un prompt DOS, par exemple, sur une disquette de démarrage. Pour obtenir plus d'informations sur ces commandes, tapez (dans un prompt DOS), le nom de votre commande suivi de...
Commandes IP relatives aux réseaux sous Windows VoirIl est parfois très utile de connaître les commandes IP, pour analyser voire configurer ses réseaux TCP/IP. Voici la liste de ces commandes à utiliser dans une fenêtre DOS...

1

ahmet0851, le 30 avr 2009 à 11:48:27
  • +1

Un sujet qui m'intéresse =) j'ai également fais des fichiers bat car j'ai des config différentes avec mon portable.

En cherchant bien je suis remonté jusqu'à windows 98 qui utilise le nom "Connexion au réseau local". Donc en théorie ça marche partout !

Mais si tu veux faire un truc générique c'est à dire pour plusieurs utilisateurs, et si un utilisateur a 2 cartes en Ethernet et 1 en wifi comment savoir sur quelle interface il faut entrer les IP ? car Connexion au réseau local est pour la carte Ethernet 1, Connexion au réseau local 2 pour la deuxième etc... Là c'est plutot un logiciel qu'il faut créer et donc pas un .bat !

Pour ma part j'ai laissé tombé et j'ai fait un zip avec 2 bat et un lisez-moi disant qu'il faut renommer l'interface à configurer en "aConfigurer" au lieu de Connexion au réseau local.
Le 1er bat configure l'interface "aConfigurer" et l'autre qui réinitialise le nom de l'interface (donc la remet en "Connexion au réseau local").

Si quelqu'un vous aide un merci et un résolu !! 

Répondre à ahmet0851

2

chamicki, le 30 avr 2009 à 12:00:52

Merci de ton aide,
cependant je pense que l'on pourrais récupérer le nom de la connexion active mais je ne sais pas comment.

Ma procédure doit simplifier la modification de l'IP donc je ne veux pas que l'utilisateur est besoin de changer de nom etc car c'est bien trop compliquer pour eux.

Si quelqu'un à une idée ???

Répondre à chamicki

3

ahmet0851, le 30 avr 2009 à 14:01:21

Qu'entends tu par connexion active ? su mon PC j'ai deux cartes Ethernet et 1 Wifi et 1 virtuel, les 4 sont actives... Si quelqu'un vous aide un merci et un résolu !! 

Répondre à ahmet0851

4

dubcek, le 30 avr 2009 à 14:25:46

Hello
tu cherches la commande qui retourne "Connexion au r‚seau local" ou comment placer "Connexion au r‚seau local" damns une variable?

Répondre à dubcek

5

jipicy, le 30 avr 2009 à 14:29:49

Hi,

A mon avis les deux, l'une découlant de l'autre ;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

7

dubcek, le 30 avr 2009 à 14:46:08

L'oeuf et la poule en quelque sorte. Mais dans la mesure ou "Connexion au r‚seau local" est le nom effectif donné par W$ à la connexion et non pas un terme générique, l'exemple donné dans la question peut impliquer que le nom de la connexion est déjà connu.

Répondre à dubcek

9

chamicki, le 30 avr 2009 à 14:58:37

En fait je branche mon câble réseau et je veut savoir le nom de la connexion sur lequel il est branché. Sur cetains ordi c'est "connexion au réseau local" sur d'autre "connexion au réseau local 2" ou j'ai encore des exemple ou elle porte le nom du constructeur comme "Belkin" par exemple.

Avez-vous compris ?

Répondre à chamicki

6

ahmet0851, le 30 avr 2009 à 14:45:08

Dubcek si t'avais les deux ça serait cool ^^

j'ai trouvé netsh diag show adapter pour afficher les cartes réseaux Si quelqu'un vous aide un merci et un résolu !! 

Répondre à ahmet0851

11

chamicki, le 30 avr 2009 à 15:47:27

La commande netsh diag show adapter donne le nom de la carte mais pas celle du réseau, n'existe-t-il pas une commande de la sorte pour connaitre le réseau ? Au pire en entrant le nom de la carte vu qu'on l'a maintenant ...

Répondre à chamicki

12

jipicy, le 30 avr 2009 à 15:50:58

Essaye avec :

netsh interface ip show config
Source : http://technet.microsoft.com/fr-fr/library/cc738592.aspx
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

8

ahmet0851, le 30 avr 2009 à 14:58:07

Justement c'est ça qui est limite impossible, comment peut tu savoir sur quelle interface il veut configurer ? il faut lui demander avant à moins d'être devin ?

Donc dans l'exemple où je lui demande de renommer c'est le seul truc que j'ai pu trouver. Après ça relève de la programmation, détecter sur quelle interface le câble est branché et encore imaginons qu'il a deux câbles de branché...

Il faut faire une interface graphique que laquelle on lui demande de cliquer sur l'interface qu'il veut configurer et là peut-être c'est plus simple...

Si quelqu'un vous aide un merci et un résolu !! 

Répondre à ahmet0851

13

dubcek, le 30 avr 2009 à 16:12:58

Que retourne
for /F "tokens=3*" %I in ('ipconfig^|findstr Ethernet') do ( echo %I %J)

Répondre à dubcek

15

chamicki, le 30 avr 2009 à 16:23:34

Sa à l'air pas mal du tout ceci !!!
Plus que le mettre dans une variable mais sa devrais être parfait... enfin à tester !!!
Merci beaucoup de ton aide, je vais voir ce que je peux en faire.

Répondre à chamicki

16

chamicki, le 30 avr 2009 à 16:30:17

Lorsque je met la commande dans un fichier bat et que je lance : le fenetre DOS s'ouvre et se referme immédiatement....
Sais-tu pourquoi ?

Répondre à chamicki

14

k.kenik, le 30 avr 2009 à 16:20:39

Mais comment faire pour créé ma propre commande ms-dos

Répondre à k.kenik

17

ahmet0851, le 30 avr 2009 à 17:17:53

http://www.commentcamarche.net/forum/affich 2047032 faire une attente sous dos batch
Commentaire numero 6 ou 17 au choix ^^


Pour créer facilement des batch tu peux essayer PowerBatch ^^ Si quelqu'un vous aide un merci et un résolu !! 

Répondre à ahmet0851

18

dubcek, le 30 avr 2009 à 17:33:52

Je demandais
Que retourne
for /F "tokens=3*" %I in ('ipconfig^|findstr Ethernet') do ( echo %I %J)

parce que chez moi, elle retourne 2 lignes
essayer
for /F "tokens=2*" %I in ('ipconfig^|findstr Ethernet') do ( set nom=%J)
echo %nom%

Répondre à dubcek

19

ahmet0851, le 30 avr 2009 à 18:42:46

Si je crée un bat ça ne fait rien ! il me dit J) inattendue

Par contre si je colle directement, ça me retourne :

C:\Documents and Settings\titi\Bureau>for /F "tokens=2*" %I in ('ipconfig^|findstr Ethernet') do ( set nom=%J)

) Documents and Settings\titi\Bureau>(set nom=Connexion au rÚseau local:

C:\Documents and Settings\titi\Bureau>echo %nom%
Connexion au rÚseau local:

bon je ne serais pas là de la soirée ! je vous lis demain =)

Si quelqu'un vous aide un merci et un résolu !! 

Répondre à ahmet0851

20

dubcek, le 30 avr 2009 à 19:02:18

Dans un bat, il faut doubler les %
for /F "tokens=2*" %%I in ('ipconfig^|findstr Ethernet') do ( set nom=%%J)

Répondre à dubcek

21

ahmet0851, le 30 avr 2009 à 19:28:01

********* fichier bat***********
@echo off
cls
for /F "tokens=2*" %%I in ('ipconfig^|findstr Ethernet') do ( set nom=%%J)
echo %nom%

ping -n 10 127.0.0.1 >nul

******************

le ping sert à faire une pause.

le resultat est :

Connexion au rÚseau local:

Fait chier le Ù pourtant j'ai enregistré au format MS-DOS :S

Mais tu y es presque. Je décolle dans 5min !! à demain ! Si quelqu'un vous aide un merci et un résolu !! 

Répondre à ahmet0851

22

dubcek, le 1 mai 2009 à 09:55:56

Cette commande devrait fonctionner, mais il suffit de trouver comment définir le " comme délimiteur de delims,
j'ai essayé \" ^" \\" "" etc
for /F "tokens=2 delims=\"" %%I in ('netsh interface dump ^|findstr address') do ( set nom=%%I)
echo %nom%

Répondre à dubcek

23

dubcek, le 1 mai 2009 à 12:03:48

Essaye ça

$ type aa.bat
@echo off
for /F "tokens=3,* " %%I in ('netsh interface ip show config^|findstr Configuration') do ( set nom=
%~J)
echo %nom%

$ aa
Connexion au réseau local 3

Répondre à dubcek

27

chamicki, le 4 mai 2009 à 09:18:07

Ceci ne fonctionne pas erreur de type ...

Répondre à chamicki

28

ahmet0851, le 4 mai 2009 à 09:24:34

As-tu essayé mon dernier commentaire ? Si quelqu'un vous aide un merci et un résolu !! 

Répondre à ahmet0851

29

chamicki, le 4 mai 2009 à 11:05:16

Sa ne marche pas !!!

Répondre à chamicki

30

ahmet0851, le 4 mai 2009 à 11:14:11

Le commentaire numéro 26 ne marche pas ?!! il marche sous XP SP2, SP3 Vista SP1 et Windows 7 build 7000... Si quelqu'un vous aide un merci et un résolu !! 

Répondre à ahmet0851

33

dubcek, le 4 mai 2009 à 11:52:29

Au post 23, il manque un % : %%~J
désolé pour les répétitions, y a eu un bug

Répondre à dubcek

31

dubcek, le 4 mai 2009 à 11:22:31

Le code suivant est sur une seule ligne et il manquait un double % à la fin

for /F "tokens=3,* " %%I in ('netsh interface ip show config^|findstr Configuration') do ( set nom=%%~J) 

Répondre à dubcek

32

dubcek, le 4 mai 2009 à 11:24:31

Il manque un %, c'est %%~J)

Répondre à dubcek

34

ahmet0851, le 4 mai 2009 à 12:07:36
  • +1

Batch Final :

@echo off
setlocal enabledelayedexpansion
cls

mode con cols=100
mode con lines=40

echo Il existe plusieurs cartes configurables, quelle est celle a configurer ?
echo.

set compteur=1
for /F "tokens=3,* " %%I in ('netsh interface ip show config^|findstr Configuration') do (
echo Carte !compteur! : %%J
echo.
set /A compteur+=1
)

echo.
set /p num=Entrez le numero de la carte a configurer :

set ctl=1

for /F "tokens=3,* " %%I in ('netsh interface ip show config^|findstr Configuration') do (
IF "!ctl!"=="%num%" set nom=%%J
set /A ctl+=1
echo.
)

echo Configuration de la carte nommee : %nom%

set ip=10.250.64.220
set masque=255.255.255.0
set passerelle=10.250.64.254
set dns=10.250.64.6

echo.
echo Configuration de votre connexion, cette operation peut prendre plusieurs secondes
echo.

echo Configuration de l'adresse IP
netsh interface ip set address %nom% static %ip% %masque% %passerelle% 1

echo Configuration du serveur DNS
netsh interface ip set dns %nom% static %dns%

echo.
echo Configuration terminee
echo.

endlocal
echo.
pause

Si quelqu'un vous aide un merci et un résolu !! 

Répondre à ahmet0851

35

chamicki, le 4 mai 2009 à 14:44:06

C'est cool à nous tous on arrive à quelque chose de vraiment bien.

MERCI à TOUS

Répondre à chamicki

36

ahmet0851, le 4 mai 2009 à 14:51:31

Oui c'est clair, merci pour le FOR, c'est lui qui fait quasi tout ^^

Sinon,

J'ai également fais un script PHP générant un fichier bat, si ça intéresse quelqu'un je peux le mettre en ligne.

De plus j'ai apporté une modification au fichier bat pour pouvoir ajouter le DNS Secondaire !!!

echo Configuration du serveur DNS primaire
netsh interface ip set dns %nom% static %dns%

echo Configuration du serveur DNS auxilaire (secondaire)
netsh interface ip add dns %nom% %dnsaux% 2

Et j'ai fait aussi le même bat pour pouvoir réinitialiser une interface (remettre en DHCP).

Résolu ?! =) Si quelqu'un vous aide un merci et un résolu !! 

Répondre à ahmet0851

37

chamicki, le 5 mai 2009 à 09:32:25

Comment on fait pour mette résolu ?

Répondre à chamicki

38

ahmet0851, le 5 mai 2009 à 10:08:18

A droite de ton 1er message tu as un petit bouton à cocher ! Si quelqu'un vous aide un merci et un résolu !! 

Répondre à ahmet0851

24

ahmet0851, le 1 mai 2009 à 20:07:25

Retour -> " Connexion au réseau local"

Mais pas ma deuxième carte Ethernet qui s'appelle "Connexion au réseau local 2"
Si quelqu'un vous aide un merci et un résolu !! 

Répondre à ahmet0851

25

ahmet0851, le 1 mai 2009 à 21:42:57

Nan en fait c'est bon le echo est en dehors de la boucle, donc il m'affiche la dernière carte réseau.
ça me récupère bien les noms de mes cartes réseau. Il faut enlever les "" et faire un petit programme demandant à l'utilisateur de choisir l'interface, genre 1 pour la carte 1, 2 pour la deuxième !

je vais essayé ça =) Si quelqu'un vous aide un merci et un résolu !! 

Répondre à ahmet0851

26

ahmet0851, le 1 mai 2009 à 23:35:23

J'ai fait ça, je ne sais pas comment créer un tableau pour récuperer tous les noms des cartes afin d'identifier avec le chiffre correspondant par exemple :
tableau_de_nom[1] = "Connexion au réseau local"
tableau_de_nom[2] = "Connexion au réseau local"
tableau_de_nom[3] = "Wifi"

Ensuite de demander taper 1 ou 2 ou 3 ... donc là lui montre le résultat et de taper le nom qu'il veut, voilà le batch

@echo off
cls

echo Il existe plusieurs cartes configurables, quelle est celle à configurer ?
echo.
REM set /a cpt="0"
for /F "tokens=3,* " %%I in ('netsh interface ip show config^|findstr Configuration') do ( echo %%J
echo.
)
echo.
set /p nom=Entrez celle que vous le souhaitez AVEC les guillemets :

set /p ip=Entrez l'adresse IP :
set /p masque=Entrez le masque :
set /p passerelle=Entrez la passerelle par défaut :
set /p dns=Entrez l'adresse DNS :

echo.
echo Configuration de votre connexion, cette opération peut prendre plusieurs secondes
echo.

echo Configuration de l'adresse IP
netsh interface ip set address %nom% static %ip% %masque% %passerelle% 1

echo Configuration du serveur DNS
netsh interface ip set dns %nom% static %dns%

echo.
echo Configuration terminée
echo.

echo.
pause Si quelqu'un vous aide un merci et un résolu !! 

Répondre à ahmet0851

39

ahmet0851, le 6 mai 2009 à 09:36:32

Pas si résolu que ça finalement.

Sous Vista ça ne marche pas car le résultat retourné par la commande netsh interface ip show config|findstr Configuration renvoie sous Vista => Configuration pour l'interface « Connexion au réseau local »
Alors que sous 2000, XP et Seven (testé) => Configuration pour l'interface "Connexion au réseau local"

Et donc lorsqu'on essaie de configurer avec mon batch ça ne marche pas à cause des guillemets « »
Allez comprendre pourquoi ils ont remplacé sous Vista et non Seven :S

J'ai essayé d'améliorer le script afin de gérer ces accents (avec les delims etc... mais j'avoue que j'ai du mal car je ne suis pas un expert).
-> j'ai essayé d'inmbriquer des FOR etc... mais nada ! je continu mes recherches !

Avez-vous essayé sous Vista ? Si quelqu'un vous aide un merci et un résolu !! 

Répondre à ahmet0851
Collection CommentÇaMarche.net