Самый простой способ получить IP-адрес машины, зная имя хоста, - применить функцию ResolveAddress:
Function ResolveAddress(ByVal ComputerName$) As String
' выполняет ICMP запрос (ping) до адреса ComputerName
' возвращает IP-адрес ComputerName$
Dim oPingResult As Variant: On Error Resume Next
For Each oPingResult In GetObject("winmgmts://./root/cimv2").ExecQuery _
("SELECT * FROM Win32_PingStatus WHERE Address = '" & ComputerName & "'")
If IsObject(oPingResult) Then ResolveAddress = oPingResult.ProtocolAddress
Next
End Function
Использовать функцию можно так:
Sub ПримерИспользованияResolveAddress()
Debug.Print ResolveAddress("yandex.ru") ' возвращает 87.250.250.11
Debug.Print ResolveAddress("google.com") ' возвращает 209.85.143.99
End Sub
Этот код (c функцией ResolveAddress) работает очень быстро (в отличие от приведённого ниже)