Pour recuperer l'adresse IP voila comment je fait
'Example en Wmi
imports System
imports System.Management
Module Module1
Public Shared Sub Main()
Dim query as ManagementObjectSearcher = new _
ManagementObjectSearcher("SELECT * FROM
WIN32_NetworkAdapterConfiguration WHERE IPEnabled = 'TRUE'")
Dim queryCollection as ManagementObjectCollection = query.Get()
Dim mo as ManagementObject
For Each mo In queryCollection
Dim addresses() as string = CType(mo("IPAddress"), string())
Dim defaultgateways() as string = CType(mo("DefaultIPGateway"),
string())
Console.WriteLine("Network Card: {0}", mo("Description"))
Console.WriteLine(" MAC Address: {0}", mo("MACAddress"))
Dim ipaddress as string
For Each ipaddress In addresses
Console.WriteLine(" IP Address: {0}", ipaddress)
Next
Dim gateway as string
For Each gateway In defaultgateways
Console.WriteLine(" Gateway: {0}", gateway)
Next
Next
End Sub
End Module
Encore une autre methode plus courte,
Dim varHostEntry As System.Net.IPHostEntry
varHostEntry = System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName())
Dim varAnAddress As System.Net.IPAddress
For Each varAnAddress In varHostEntry.AddressList
MsgBox(varAnAddress.ToString())
Next
Pour un reseau local je fait autrement,
Imports System.Net
Public Function ListeAdressesIP() As String
Dim strListe As String
Dim objAdresse As Net.IPAddress
Dim objHote As Net.IPHostEntry
objHote = Dns.Resolve(Dns.GetHostByName("LocalHost").HostName)
For Each objAdresse In objHote.AddressList()
strListe = IIf(strListe = "", "", strListe & "#") & objAdresse.ToString()
Next
Return strListe
End Function
Voila j'espere que tu auras le choix 
http://www.troxsa.info/
Code VB.net 