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 |
Partager