Besoin d'aide Batch et IP

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
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
Configuration: Windows Vista

14 réponses

  1. Utilisateur anonyme
     
    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
  2. Utilisateur anonyme
     
    Ok, merci Rocky_123, je vais essayer bientôt

    @+
    0
    1. Utilisateur anonyme
       
      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
  3. cchristian Messages postés 928 Statut Membre 131
     
    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
  4. Utilisateur anonyme
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. cchristian Messages postés 928 Statut Membre 131
     
    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
  7. Utilisateur anonyme
     
    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
  8. cchristian Messages postés 928 Statut Membre 131
     
    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
  9. Utilisateur anonyme
     
    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
  10. cchristian Messages postés 928 Statut Membre 131
     
    Si je trouve quelque chose je te le ferai savoir,

    Bonne continuation,
    0
  11. painghou Messages postés 8 Statut Membre
     
    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
  12. Utilisateur anonyme
     
    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
  13. painghou Messages postés 8 Statut Membre
     
    Je t'ai envoyer un zip avec les 2 fichiers, ainsi qu'une petite bafouille.

    A bientôt.
    0
  14. Utilisateur anonyme
     
    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
  15. Utilisateur anonyme
     
    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