Dim wmiQuery, objWMIService, objPing, objStatus
wmiQuery = "Select * From Win32_PingStatus Where Address = 'HostName'"
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set objPing = objWMIService.ExecQuery(wmiQuery)
For Each objStatus In objPing
If objStatus.StatusCode = 0 Then
msgbox(objStatus.ProtocolAddress)
Else
msgbox("Unreachable")
End If
Next
Set wmiQuery = Nothing
Set objWMIService = Nothing
Set objPing = Nothing
Set objStatus = Nothing
Ovviamente il codice può essere trasportato anche in applicazioni .NET
UPDATE:
Come detto da Marco Minerva nel suo post:
http://blogs.ugidotnet.org/marcom/archive/2007/01/25/68646.aspx
Se la necessità è solo quella di ricavare gli indirizzi IP il .NET Framework offre nativamente la classe System.Net.DNS.GetHostEntry
Se invece l'esigenza è di taglio più sistemistico e serve sapere l'ip solo nel caso in cui l'host è raggiungibile (via ping) e magari con quali temistiche la Win32_PingStatus può tornare utile.
http://msdn2.microsoft.com/en-us/library/aa394350.aspx