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

VBScript Discussion :

lancé nslookup et récupéré résultat dans le vbscript


Sujet :

VBScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut lancé nslookup et récupéré résultat dans le vbscript
    Bonjou,
    comme je l'indique dans le titre je cherche une solution qui me permette de lancer nslookup avec un script pour pouvoir récupérer le nom de réseau de la machine dont l'ip est passé avec nslookup.

    Je veux récupérer le nom de la machine dans mon script.

    Merci

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Inutile de passer par NSLookUp, tu pe le faire directement en VBS.
    Regarde ici et ici

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut
    merci je vais y jeter un coup d'oeil

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut
    bon jarrive à avoir mon nom de poste mais je voudrais récupérer le nom d'un poste du réseau grâce à l'adresse ip.

    code pour avoir mon nom de poste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    strComputer = "."
    Set objWMIService = GetObject( _
        "winmgmts:\\" & strComputer & "\root\cimv2")
    Set colNetCards = objWMIService.ExecQuery _
        ("Select * From Win32_NetworkAdapterConfiguration " _
            & "Where IPEnabled = True")
    For Each objNetCard in colNetCards
        MsgBox objNetCard.DNSHostName
    Next
    merci

  5. #5
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Bon voila un bout de code que j'ai réalisé il y a 6 mois :
    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
    'Récupère l'adresse IP d'un PC à partir de son nom.
    Function GetIpHostByName (Adresse_IP)
    Dim ExitBoucle 'Pour sortir de la boucle une fois que l'adresse IP est trouvé
    Dim IPIndex 'Index de la boucle For
     
    If Not Adresse_IP = "" Then
       IPIndex = 0
       ExitBoucle = False
       'Récupération de la liste des cartes réseaux existantent sur le PC.
       Set objWMIService = GetObject("winmgmts:\\" & Adresse_IP & "\root\cimv2")
       Set IPConfigSet = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where DNSHostName='" & Adresse_IP & "'")
       If Not IPConfigSet.count = 0 Then
          For Each IPConfig in IPConfigSet
             'Pour chaque carte (IPConfig), parcours de la liste des adresses IP (IPAdress, c'est un tableau).
              If Not IsNull(IPConfig.IPAddress) Then
                 For IPIndex=LBound(IPConfig.IPAddress) to UBound(IPConfig.IPAddress)
                     If Not Adresse_IP = IPConfig.IPAddress(IPIndex) Then 'Sert à vérifier que Adresse_IP ne soit pas déja une Adresse_IP.
                        If UCase(IPConfig.DNSHostName) = UCase(Adresse_IP) Then 'Comme Adresse_IP est un nom, nous pouvons le comparer au DNSHostName.
                           If Not IPConfig.MACAddress = "00:00:00:00:00:00" Then 'Ainsi on s'assure que l'on à bien à faire à une carte reseau non virtuel.
                              Adresse_IP = IPConfig.IPAddress(IPIndex)
                              ExitBoucle = True 'Inutile de parcourir le reste des cartes reseau
                              Exit For
                           End If
                        End If
                     End If
                 Next
              End If
              If ExitBoucle = True Then
                 Exit For
              End If
          Next
       End If
       Set objWMIService = Nothing
       Set IPConfigSet = Nothing
       GetIpHostByName = Adresse_IP
    Else
       GetIpHostByName = ""
    End If
    End Function
    Cela fait l'inverse de ce que tu veux, à partire d'un nom DNS, je retrouve l'adresse IP.
    Mais bon cela ne doit pas être trop compliquer de faire l'inverse en s'inspirant de code. Il faut jouer avec les attributs de Win32_NetworkAdapterConfiguration et la methode ExecQuery.

    Ha oui juste une chose, ma variable contenu le nom DNS s'appelle Adresse_IP. Je sais un peu surprenant mais ce serais chiant si on ne se compliqué pas la vie

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut
    en fait je comprends très bien ton code mais d'abord je ne sais pas si je peux faire un "getObject avec l'adresse ip" toi tu le fais avec le nom de de la machine, moi ca ne fonctionne pas avec l'adress ip.

    Sinon j'ai essayé de faire un "objWMIService.execQuery" avec "where Adress=ip"
    ip c'est l'adresse ip du poste dont je veux le nom.
    Quand j'essaie ca déjà il ne le bouffe, problème de guillemets je pense mais si je passe par une variable intermédiaire comme tu l'as fait il ne bouffe pas non plus et m'indique une erreur au premier caractère de la ligne suivante.

  7. #7
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    pas de problème, getobject marche avec l'adresse ip, j'ai déja essayé
    Et ensuite, cela serais un truc du genre "where IPAddress(0) ='" & ip & "'"

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    strComputer = "10.20.1.10"
    ipcomputer = "10.20.1.10"
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colNetCards = objWMIService.ExecQuery _
        ("Select * From Win32_NetworkAdapterConfiguration " _
            & "Where IPAdress(0)='" & ipcomputer & "'")
    For Each objNetCard in colNetCards
        MsgBox objNetCard.DNSHostName
    Next
    avec ce code on me dit que le serveur distant n'est pas disponible'getOBJECT'

  9. #9
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    je suis sur que cela marche avec une adresse IP.
    essayes avec le nom de ta machine local au cas ou.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut
    si dans strComputer je met le nom de ma machine, j'ai une erreur au premier caractère après la ligne "where IPAdress(0)=ip

  11. #11
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    where IPAdress(0)=ip -> ça je n'etais pas sur que cela fonctionne.
    As tu fait une recherche sur le forum, j'ai un vague souvenir d'un ancien sujet identique au tiens et puis t'en qu'on est dans les recherches as tu essayé google ?

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut
    oui j'ai fait toutes les recherches nécessaires avant de poster

  13. #13
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Bon j'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    strComputer = "10.193.161.18"
    Set objWMIService = GetObject( _ 
        "winmgmts:\\" & strComputer & "\root\cimv2")
    Set IPConfigSet = objWMIService.ExecQuery _
        ("Select IPAddress from Win32_NetworkAdapterConfiguration ")
     
    For Each IPConfig in IPConfigSet
        If Not IsNull(IPConfig.IPAddress) Then 
            For i=LBound(IPConfig.IPAddress) _
                to UBound(IPConfig.IPAddress)
                    Msgbox IPConfig.IPAddress(i)
            Next
        End If
    Next
    10.193.161.18 -> c'est l'adresse local de ma machine et cela marche.
    Pareil avec 127.0.0.1.
    Mais avec une adresse d'une autre de mes machines -> NADA ça marche pas.
    Avec le nom dns par contre cela fonctionne toujours.
    Je ne sais aps exactement comme cette fonction marche, mais en tout cas elle est prévu pour fonctionner avec des adresses IP directement.
    L'erreur obtenu est certainement dut à une configuration particuliere du reseau.
    Enfin, il y a 6 mois sur le meme reseau, mais avec des adresses IP différentes, cela marchais .
    Je ne sais pas si cela t'aide ....
    Voici un autre lien qui pourrais t'offrir une solution à ton problème :
    http://msdn2.microsoft.com/en-us/library/aa389290.aspx

    Si cela ne marche pas, je suis à cours d'idée, désolé.

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Par défaut
    pour ma propre de station ton code fonctionne mais pas pour une autre station du réseau.
    Je vais regarder les solutions possibles sur le lien que tu m'as donné et si je trouve rien et bien tant pis pour moi.
    merci kan meme

  15. #15
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Je viens de vérifier, mais même avec un nom DNS pour une machine distante, cela ne marche pas chez moi. Je pense que c'est un problème de configuration de parefeu, ou de reseau, ou d'antivirus.
    Ce doit être la même chose chez toi.
    Essayes en désactivant temporairement le parfeu et l'antivirus.

Discussions similaires

  1. Exporter résultats dans fichier excel [forms 6i]
    Par OUALASS dans le forum Forms
    Réponses: 4
    Dernier message: 30/05/2006, 19h38
  2. [cURL] Lecture du résultat dans le Header
    Par loukili81 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 19/05/2006, 11h25
  3. Résultat dans un ÉTAT
    Par virtuose dans le forum IHM
    Réponses: 1
    Dernier message: 05/05/2006, 21h28
  4. Réponses: 5
    Dernier message: 16/02/2006, 16h06
  5. Résultats dans une même colonne.
    Par souellet dans le forum Langage SQL
    Réponses: 6
    Dernier message: 10/03/2004, 19h51

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