Besoin d'aide Batch et IP

Résolu/Fermé
Utilisateur anonyme - 7 sept. 2008 à 18:03
 Utilisateur anonyme - 2 déc. 2008 à 21:27
Bonjour a tous, je voudrait savoir si se serait possible de créer un batch qui s'exécuterait selon l'IP de l'ordinateur qui l'exécute. Je m'explique:
Je voudrait qu'un programme ne soit ouvert que par une certaine IP

Malheureusement, l'IP n'est pas (a ma connaissance...) une variable signification (comme %OS% ou %USERNAME%...)
Je ne peut donc pas créer un batch du genre:

@echo off
if "%IP%"=="adresse_IP" goto suite
goto fin

:suite
Call "C:\..."

:fin
exit

Svp, si c'est pas super important mais j'aimerai bien savoir comment on fait...

@+


H4RDW4RE

14 réponses

Utilisateur anonyme
7 sept. 2008 à 18:05
Salut, je pense que les scripts de Windows ont leurs limites. Tu devrais essayer d'autres langages plus poussés, comme AutoIt qui permet de créer des scripts très puissants.
0
Utilisateur anonyme
7 sept. 2008 à 18:06
Ok, merci Rocky_123, je vais essayer bientôt

@+
0
Utilisateur anonyme
26 sept. 2008 à 18:47
Mouai...
Ben finalement, je n'y arrive toujours pas (je ne suis pas super a l'aise avec AutoIt...
Si quelqu'un a une autre idée, je suis prenant ;)

Merci d'avance

@+
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
26 sept. 2008 à 22:10
Bonsoir,

Il doit exister quelque chose de plus synthétique mais je ne parviens pas à le retrouver. A défaut je te propose cela pour récupérer l'adresse IP :

SETLOCAL ENABLEdelayedExpansion
SETLOCAL ENABLEextensions
CLS

SET  "adress_IP="

      FOR /F  "tokens=1-13*"         %%I IN          (
           ' ipconfig  ^|  FIND "Adresse IP." ')      DO  (
        IF "!adress_IP!"     ==  ""  (
             SET "adress_IP=%%V" ) )

 ECHO adress_IP !adress_IP!
0
Utilisateur anonyme
26 sept. 2008 à 22:29
Salut Cchristian, merci de ton aide, mais je suis encore perdu (et oui !!!)
Lorsque j'execute ton code batch (qui, je doit dire, me laisse sur le c*l), le DOS s'ouvre et il y a marqué:

adresse_IP

Rien d'autre. J'ai essayer (je dit bien essayer: j'ai 16 ans, je n'ai pas le cerveau de Kevin Mitnick) de le modifier: sans succès.

Ce n'est pas grave, je vais essayer autre chose, c'était plus par essais et par curiosité que par besoin réel...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
26 sept. 2008 à 22:58
As_tu bien repris le code tel que je te l'ai posté ?
notamment :
SETLOCAL ENABLEdelayedExpansion
SETLOCAL ENABLEextensions


Chez moi ça marche. Je vérifie à nouveau si je n'ai rien oublié :
Non tout est identique !

Vérifie aussi la synntaxe de la dernièère ligne :
ECHO adress_IP !adress_IP!
Il faut un point d'exclamation au début et un autre à la fin du nom de la variable adress_IP (copier/coller peut être ?)


Quand tu tapes au clavier la commande "ipconfig" as-tu l'équivalent de cela ?
(au moins pour la partie Adresse IP. . . . . . . . . . . . : 192.168.1.2 à la valeur près bien sûr)

Carte Ethernet Connexion au réseau local:

        Statut du média . . . . . . . . . : Média déconnecté

Carte Ethernet Connexion réseau sans fil 11:

        Suffixe DNS propre à la connexion :
        Adresse IP. . . . . . . . . . . . : 192.168.1.2
        Masque de sous-réseau . . . . . . : 255.255.255.0
        Adresse IP. . . . . . . . . . . . : fe80::260:b3ff:feba:ed3%7
        Passerelle par défaut . . . . . . : 192.168.1.1

Carte Tunnel Teredo Tunneling Pseudo-Interface :

        Suffixe DNS propre à la connexion :
        Adresse IP. . . . . . . . . . . . : 2001:0:d5c7:a2ca:0:f9ad:a5da:eb52
        Adresse IP. . . . . . . . . . . . : fe80::ffff:ffff:fffd%5
        Passerelle par défaut . . . . . . : ::

Carte Tunnel Automatic Tunneling Pseudo-Interface :

        Suffixe DNS propre à la connexion :
        Adresse IP. . . . . . . . . . . . : fe80::5efe:192.168.1.2%2
        Passerelle par défaut . . . . . . :

:
0
Utilisateur anonyme
27 sept. 2008 à 13:30
Oui, j'ai bien copier/coller le code mais cela ne marche toujours pas, j'ai vérifié toutes les lignes mais sans succès.
La commande DOS "ipconfig" marche très bien, je n'ai aucun soucis la dessus seulement la fenêtre DOS m'indique:

Adress_IP

Mon adresse IP (192.168.1.xxx) n'est pas affichée...
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
27 sept. 2008 à 15:53
Bonjour,

Désolé, j'ai tenté sans succès de créer le cas dans mon environnement en modifiant par exemple la logique pour récupérer différentes valeurs renvoyées par la commande ipconfig et préfixées par le libellé "Adresse IP.", comme par exemple :

192.168.1.2
fe80::260:b3ff:feba:ed3%8
2001:0:d5c7:a2ca:0:fa88:a5da:eb52
fe80::ffff:ffff:fffd%5
fe80::5efe:192.168.1.2%2

dernier essai :
adress_IP fe80::5efe:192.168.1.2%2

tout se passe convenablement, je ne comprends pas pourquoi cela ne fonctionne pas chez toi.
0
Utilisateur anonyme
27 sept. 2008 à 16:03
Merci Cchristian, mais cela ne marche toujours pas (il y a des trucs qui m'échappent...)

C'est peut être aussi moi qui ne fait pas comme il faut (pourtant...)

Je te remercie de ta patiente mais j'avoue que je ne comprend pas pourquoi cela ne marche pas chez moi...

Tant pis, c'était plus par curiosité et par bidouillage que par réel besoin...

Merci encore

@+
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
27 sept. 2008 à 16:15
Si je trouve quelque chose je te le ferai savoir,

Bonne continuation,
0
painghou Messages postés 8 Date d'inscription mercredi 8 octobre 2008 Statut Membre Dernière intervention 14 novembre 2014
8 oct. 2008 à 09:42
Bonjour,

J'ai eu cela à mon boulot, nous utilisons un fichier batch qui appelle un fichier config en ".txt".
Si tu le souhaite je peux t'envoyer 2 fichiers exemples.
Par contre je suis tomber sur un os, je ne sais pas changer :
- la "Passerelle par defaut",
- le "Serveur DNS préféré",
- le "Serveur DNS auxiliaire".
Dans le fichier ".txt" je ne connais pas le libellé de ces commandes. Par exemple "addr=X" correspond au libellé de l'adresse IP.
Merci d'avance si vous pouviez me dire le libellé de ces 3 commandes.
0
Utilisateur anonyme
8 oct. 2008 à 18:51
Bonjour, désolé mais je n'ai pas tout compris... :S
Que faut-il que je t'envoie ?

Ma passerelle par défaut est: 192.168.1.1
Mon suffixe DNS propre a la connexion est: rlan.eu

Je ne sais pas quoi te dire d'autres...
Je ne serait pas contre les 2 fichiers exemples... ===> H4RDW4RE@hotmail.fr

Merci encore =D

A bientôt
0
painghou Messages postés 8 Date d'inscription mercredi 8 octobre 2008 Statut Membre Dernière intervention 14 novembre 2014
8 oct. 2008 à 19:32
Je t'ai envoyer un zip avec les 2 fichiers, ainsi qu'une petite bafouille.

A bientôt.
0
Utilisateur anonyme
8 oct. 2008 à 19:58
Oui, j'ai vu
Merci !!!!

Mais je ne demandait pas tout sa !!! ;)

Mon "problème" de départ était qu'un batch (que j'aurai reconvertie en application) ne s'ouvre que par une certaine IP. Après réfléxion, je me suis dit que j'aurai pu mettre en critères, non pas l'IP mais une autre variable signification comme %USERDOMAIN%

C'était pour un ami qui a plusieurs ordi chez lui et qui voulait que se programme ne s'ouvre que sur le sien...
Bref, se n'était pas destiné a des génies de l'informatique, et mèttre une condition avec %USERDOMAIN% suffirait largement pour résoudre mon "problème" (peu de gens vont d'amuser a changer le nom d'utilisateur de leur ordinateur pour ouvrir un simple programme...)

Mon batch suffira largement avec un début du genre:

@echo off
if "%USERDOMAIN%"=="NOM_PC" goto 1
goto 2

:1
Call "C:\..."

:2
exit
0
Utilisateur anonyme
2 déc. 2008 à 21:27
Bonjour a tous, me revoila ^^

En fait, après quelques essaies, j'ai enfin trouvé comment utiliser l'IP de quelqu'un comme variable.

Je sais bien que le code est un peu "débutant", mais c'est tout se que j'ai réussi a faire :


@echo off
@cls
nbtstat.exe -A 127.0.0.1 > temp.txt
for /f "eol= tokens=2 delims=[" %%A in (temp.txt) do echo %%A > temp.txt
for /f "eol= tokens=1 delims=]" %%N in (temp.txt) do echo %%N > temp.txt
set /p IP= < temp.txt
@cls
echo.
echo Votre IP est %IP%
del temp.txt
pause>nul
if "%IP%"=="xxx.xxx.xxx.xxx " goto IP_OK
REM Il faut laisser un espace entre l'IP et le ". Exemple : "127.0.0.1 "
goto Err

:IP_OK
@cls
color 02
echo.
echo Acces Autorise
pause>nul
exit

:Err
@cls
color 0C
echo.
echo Acces refuse
pause>nul
exit



Voila, tout sa pour répondre a ma question de départ

@+
0