IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Remonter des adresses IP [Batch]


Sujet :

Scripts/Batch

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 51
    Points : 25
    Points
    25
    Par défaut Remonter des adresses IP
    Bonjour à tous,

    Je suis a la recherche d'un batch qui me mettrais de mettre à jour BGINFO pour seulement avoir mon adresse IP ainsi que l'adresse IP VPN quand je doit me connecter à mon entreprise à distance.
    J'ai déjà fait un petit script mais cela ne me remonte pas se que je veux
    voici se que j'ai déja écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    setlocal
    for /f "delims=: tokens=1-2" %%c in ('ipconfig /all ^| find "IPv4"') do set GetIP=%%d
    endlocal & set GetIP=%GetIP:~1%
    echo %GetIP% > "IP.txt"

  2. #2
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Salut,

    Tu peux utiliser un script mixte [BAT/VBS] qui va récuperer ton IP externe directement sur un site spécialisé :

    Code écrit par mon ami Delmar Grande.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    @echo off
    mode con:cols=90 lines=12
    ::Script criado no masbat v2.0
    ::Autor Delmar Grande
    ::fórum DBatchScript  http://dbatchscript.forumeiros.com/
    ::Data  Qua 3 Jul 2013
    title -==*==- ip da rede externa -==*==-
    (
    echo Dim objHttp,sText
    echo     Set objHttp = CreateObject("Msxml2.ServerXMLHTTP"^)
    echo     objHttp.Open "GET", "http://www.whatsmyip.us/showipsimple.php", False
    echo.
    echo     objHttp.Send
    echo     sText = objHttp.ResponseText
    echo     path = sText
    echo     posA = InStrRev(path, "document.write("^)+16
    echo     posB = InStrRev(path, ");"^)-1
    echo     WScript.Echo Mid(path, posA, posB - posA^)
    echo     Set objHttp = Nothing
    )>"%tmp%\IpExterno.vbs"
    ::inicio
    echo.
    echo Iniciando Aguarde...
    for /f "tokens=* delims=*" %%a in ('Cscript "%tmp%\IpExterno.vbs" //nologo') do (set "a=%%a")
    cls
    echo Votre IP externe est : "%a%"
    Del "%tmp%\IpExterno.vbs"
    ::fim
    pause>nul
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 51
    Points : 25
    Points
    25
    Par défaut
    Effectivement récupérer l'adresse du net est pas mal mais cela ne me donne pas les adresse IP de mes cartes réseau.

  4. #4
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Ça tu dois pouvoir les récuperer avec un :

    comme dans ton premier exemple.
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 51
    Points : 25
    Points
    25
    Par défaut
    Effectivement c'est bien dans l'Ipconfig /all sauf que quand je lance le script de mon premier exemple, il ne me remonte que la dernière adresse rechercher.

  6. #6
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Procède de la même manière, avec un find sur chaque élément dont tu veux récuperer la valeur.

    Envoie un un exemple de la sortie de IPconfig et des valeurs que tu veux récuperer.
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  7. #7
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    Copier et coller ce code dans votre notepad et enregistrer-le sous le nom : MonIpConfig.bat avec Unicode et non pas ANSI sinon le script ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    @echo off
    echo Set fso=createobject(^"Scripting.FileSystemObject^") > outip.vbs
    echo Set Fichier = fso.OpenTextFile(^"out.txt^",1) >> outip.vbs
    echo Ip_Publique() >> outip.vbs
    echo MsgBox Formater(^"out.txt^"),64,^"Adresse IP^"  >> outip.vbs
    
    echo Function Formater(LogFile) >> outip.vbs
    echo	Dim fso,fRead,fWrite,Text >> outip.vbs
    echo	Set fso = CreateObject(^"Scripting.FileSystemObject^") >> outip.vbs
    echo	Set fRead = fso.OpenTextFile(LogFile,1) >> outip.vbs
    echo	Text = fRead.ReadAll >> outip.vbs
    echo	fRead.Close >> outip.vbs
    echo	Set fWrite = fso.OpenTextFile(LogFile,2,True) >> outip.vbs
    echo	Text = Replace(Text,^"‚^",^"é^") >> outip.vbs
    echo	Text = Replace(Text,^"ÿ^",^" ^") >> outip.vbs
    echo	Text = Replace(Text,^"ˆ^",^"ê^") >> outip.vbs
    echo	Text = Replace(Text,^"‡^",^"ç^") >> outip.vbs
    echo	Text = Replace(Text,^"“^",^"ô^") >> outip.vbs
    echo	Text = Replace(Text,^"…^",^"à^") >> outip.vbs
    echo	Text = Replace(Text,^"Š^",^"è^") >> outip.vbs
    echo	Text = Replace(Text,^"ƒ^",^"â^") >> outip.vbs
    echo	Text = Replace(Text,^"?^",^" ^") >> outip.vbs
    echo	fWrite.WriteLine Text >> outip.vbs
    echo	Formater = Text >> outip.vbs
    echo End Function >> outip.vbs
    
    echo Sub Ip_Publique >> outip.vbs
    echo Dim Titre,URL,ie,objFSO,Data,OutPut,objRegex,Match,Matches >> outip.vbs
    echo Titre = ^"Adresse Ip Publique !^" >> outip.vbs
    echo URL = ^"http://monip.org^" >> outip.vbs
    echo Set ie = CreateObject(^"InternetExplorer.Application^") >> outip.vbs
    echo Set objFSO = CreateObject(^"Scripting.FileSystemObject^")  >> outip.vbs
    echo ie.Navigate (URL) >> outip.vbs
    echo ie.Visible=false >> outip.vbs
    echo DO WHILE ie.busy >> outip.vbs
    echo wscript.sleep 100 >> outip.vbs
    echo LOOP >> outip.vbs
    echo Data = ie.document.documentElement.innertext >> outip.vbs
    echo Set OutPut = objfso.OpenTextFile(^"out.txt^",8,True,-2) >> outip.vbs
    echo ie.Quit >> outip.vbs
    echo Set ie = Nothing >> outip.vbs
    echo Set objRegex = new RegExp  >> outip.vbs
    echo objRegex.Pattern = ^"\b([0-9]{1,3}\.){3}[0-9]{1,3}\b^" >> outip.vbs
    echo objRegex.Global = False >> outip.vbs
    echo objRegex.IgnoreCase = True >> outip.vbs
    echo Set Matches = objRegex.Execute(Data) >> outip.vbs
    echo For Each Match in Matches >> outip.vbs 
    echo MsgBox ^"Mon IP Publique est : ^" ^& vbCrLF ^& Match.Value ,64,Titre >> outip.vbs
    echo OutPut.WriteLine string(40,^"-^") ^& vbcrLF ^&^"  Nous sommes le ^"^& Now ^& vbcrLF ^& string(40,^"-^") ^& vbcrLF ^& ^"  Mon IP Publique est : ^"^& Match.Value ^& vbcrLF ^& string(40,^"*^") >> outip.vbs
    echo Next >> outip.vbs
    echo End Sub >> outip.vbs
    arp -a > out.txt
    echo *******************************************************>> out.txt
    ipconfig /all >> out.txt
    echo. >> out.txt
    call outip.vbs
    Start out.txt

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 51
    Points : 25
    Points
    25
    Par défaut
    Salut hackoofr et merci

    J'aurais une petite précision à faire, il faut bien enregistrer en ANSI et non en enicode.

    Toutefois, enfin si je peux me permettre, je ne suis pas intéresser par mon adresse public. Les seules que je souhaite, c'est pouvoir récupéré mon adresse IP privé (genre 192.168.1.55) ainsi que mon adresse IP VPN une fois connecter dessus.

    et donc quand je lance BGINFO, il me donne toute les adresse IP privés de toute les carte réseaux active ou non d’ailleurs.

    Moi se que je souhaiterais avoir c'est seulement l'adresse IP privé de ma carte réseau active et l'adresse IP de mon VPN.

    Bon bien sur si il y a aussi le masque, la passerelle, le serveur sur lequel je suis connecter se serais un plus mais bon sa encore je peux me débrouiller.

    Donc pour résumé voici le résultat que j'aimerais avoir dans BGINFO

    Hostname: Mon-PC

    Adresse IP: 192.168.1.55
    10.10.10.1

    Masque: 255.255.0.0
    255.255.255.255

    passerelle: 192.168.1.1

    Serveur AD: MonServeurActiveDirectory

  9. #9
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Je t'ai fait un petit exemple de récuperation avec Wmic.
    tu peux regarder dans le fichier "Reseau.txt" si il y a s'autres info pertinente pour toi et les récuperer de la même manière.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @echo off
    wmic nicconfig where ipenabled=true list full >reseau.txt
    
    for /f "delims=" %%a in ('type reseau.txt ^| find /i "DHCPServer"') do (set %%a)
    for /f "delims=" %%a in ('type reseau.txt ^| find /i "IPAddress"') do (set %%a)
    for /f "delims=" %%a in ('type reseau.txt ^| find /i "IPSubnet"') do (set %%a)
    
    
    echo DHCP SERVER : %dhcpServer%
    echo IPAdress    : %IPAddress:~2,13%
    echo IPsubnet    : %ipsubnet:~1,-6%

    Que tu peux ensuite simplifier en une petite routine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @echo off
    wmic nicconfig where ipenabled=true list full >reseau.txt
    
    for %%a in ("Dhcpserver" "Ipaddress" "IPsubnet" "MacAddress") do (
                         for /f "delims=" %%b in ('type reseau.txt ^| find /i %%a') do (set %%b))
    
    
    echo DHCP SERVER : %dhcpServer%
    echo IPAdress    : %IPAddress:~2,13%
    echo IPsubnet    : %ipsubnet:~1,-6%
    echo MacAddress  : %Macaddress%
    de la même manière tu peux récupèrer des infos sur tes adaptateurs réseau avec la commande :

    que tu pourrais redirectionner à la suite du "Reseau.txt" existant et faire un traitement complet de tes éléments réseau.

    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 51
    Points : 25
    Points
    25
    Par défaut
    Salut et merci pour les 2 scripts.

    Si je comprend bien le premier script la ligne
    for /f "delims=" %%a in ('type reseau.txt ^| find /i "DHCPServer"') do (set %%a)
    veux dire:

    tu va recherche dans le fichier reseau.txt le mot DHCPServer et tu rajoute en variable le résultat

    donc si je fait une petite modification et je met sa
    for /f "delims=" %%a in ('type reseau.txt ^| find /i "Description" ^| find /i "Intel" ^|find /i "DHCPServer"') do (set %%a)
    il devrait normalement faire

    maintenant je ne suis pas sur que mon code soit correct mais je tester

    rechercher dans le fichier reseau.txt le mot Description puis Intel et enfin DHCPServer, tu prend le résultat de cette recherche dans une variable

  11. #11
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Pour le "Find" en cascade ça ne va pas fonctionner dans un "FOR".

    Apparemment tu as plusieurs adaptateur reseau et tu veux recuperer les élement individuellement pour chaque adapteur.

    Dans ce cas il faut s'orienter sur un traitement ligne par ligne avec des tests pour récuperer le bon élement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    @echo off
    wmic nicconfig where ipenabled=true list full >reseau.txt
    SetLocal EnableDelayedExpansion
    
    ::: Ici la marque de la carte a rechercher :
    
    set $Cherche="Realtek"
    
    :::::
    
    set $switch=0
    for /f "delims=" %%a in ('type reseau.txt') do (echo %%a | find /i "description" && echo "%%a" | find /i %$cherche% && set "$switch=1" && set %%a
                                                    if !$switch! equ 1 echo %%a | find /i "DHCPServer" && set %%a && set $switch=0)
    
    
    cls
    echo Carte Reseau : %Description%
    echo DhCPServer   : %dhcpserver%
    
    endlocal
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 51
    Points : 25
    Points
    25
    Par défaut
    Merci à tous le monde pour votre aide.

    Avec tous les exemple je vais pouvoir tous compilé et faire un joli script pour que je puisse récupérer les informations demander.

    et donc pour ceux que cela intéresse je vous met le script que j'ai compiler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    @echo off
    wmic nicconfig where ipenabled=true list full >reseau.txt
    SetLocal EnableDelayedExpansion
    
    ::: Ici la marque de la carte a rechercher :
    
    set $Cherche="Intel"
    
    :::::
    
    set $switch=0
    for /f "delims=" %%a in ('type reseau.txt') do (echo %%a | find /i "description" && echo "%%a" | find /i %$cherche% && set "$switch=1" && set %%a
                                                    if !$switch! equ 1 echo %%a | find /i "DHCPServer" && set %%a && set $switch=0)
    
    for /f "delims=" %%a in ('type reseau.txt') do (echo %%a | find /i "Description" && echo "%%a" | find /i %$cherche% && set "$switch=1" && set %%a
                                                    if !$switch! equ 1 echo %%a | find /i "IPAddress" && set %%a && set $switch=0)                                                
    
    for /f "delims=" %%a in ('type reseau.txt') do (echo %%a | find /i "Description" && echo "%%a" | find /i %$cherche% && set "$switch=1" && set %%a
                                                    if !$switch! equ 1 echo %%a | find /i "IPSubnet" && set %%a && set $switch=0)
    
    for /f "delims=" %%a in ('type reseau.txt') do (echo %%a | find /i "Description" && echo "%%a" | find /i %$cherche% && set "$switch=1" && set %%a
                                                    if !$switch! equ 1 echo %%a | find /i "MACAddress" && set %%a && set $switch=0)
                                                    
    echo Carte Reseau     : %Description% >rso.txt
    echo IPAddress        : %IPAddress:~2,12%>>rso.txt
    echo IPSubnet         : %IPSubnet:~2,-19%>>rso.txt
    echo MACAddress       : %MACAddress%>>rso.txt
    echo DhCPServer       : %dhcpserver%  >>rso.txt
    
    set $Cherche2="Shrew"
    set $switch=0
    for /f "delims=" %%a in ('type reseau.txt') do (echo %%a | find /i "Shrew" && echo "%%a" | find /i %$cherche2% && set "$switch=1" && set %%a
                                                    if !$switch! equ 1 echo %%a | find /i "DHCPServer" && set %%a && set $switch=0)
    
    for /f "delims=" %%a in ('type reseau.txt') do (echo %%a | find /i "Shrew" && echo "%%a" | find /i %$cherche2% && set "$switch=1" && set %%a
                                                    if !$switch! equ 1 echo %%a | find /i "IPAddress" && set %%a && set $switch=0)                                                
    
    for /f "delims=" %%a in ('type reseau.txt') do (echo %%a | find /i "Shrew" && echo "%%a" | find /i %$cherche2% && set "$switch=1" && set %%a
                                                    if !$switch! equ 1 echo %%a | find /i "IPSubnet" && set %%a && set $switch=0)
    
    for /f "delims=" %%a in ('type reseau.txt') do (echo %%a | find /i "Shrew" && echo "%%a" | find /i %$cherche2% && set "$switch=1" && set %%a
                                                    if !$switch! equ 1 echo %%a | find /i "MACAddress" && set %%a && set $switch=0)
     
    echo Carte Reseau     : %Description%>>rso.txt
    echo IPAddress        : %IPAddress:~2,14%>>rso.txt
    echo IPSubnet         : %IPSubnet:~2,-8%>>rso.txt
    echo MACAddress       : %MACAddress%>>rso.txt
    echo DhCPServer       : %dhcpserver%>>rso.txt
    endlocal
    Encore mille merci à tous

    Je clos cette discution

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#]Remonter des événements dans des classes imbriquées
    Par Kcirtap dans le forum Windows Forms
    Réponses: 9
    Dernier message: 14/12/2013, 12h43
  2. Remonter des donnes sur ACCESS
    Par pierre bunel dans le forum Access
    Réponses: 1
    Dernier message: 22/12/2005, 17h03
  3. Réponses: 5
    Dernier message: 24/10/2005, 15h11
  4. Réponses: 17
    Dernier message: 04/02/2005, 12h05
  5. [VBA][outlook] récupération des adresses mail
    Par arno2004 dans le forum VBA Outlook
    Réponses: 4
    Dernier message: 27/07/2004, 18h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo