Отказ от ответственности - у меня не установлен IPv6, и, вероятно, есть гораздо лучший способ сделать это, но что возвращает следующее:
Dns.GetHostEntry(Dns.GetHostName()).AddressList
.Where(a => !a.IsIPv6LinkLocal && !a.IsIPv6Multicast && !a.IsIPv6SiteLocal)
.First()
.ToString();
Редактировать - не заметил, что вы спрашиваете в VB, поэтому я попытался перевести его на:
Dim s As String = Dns.GetHostEntry(Dns.GetHostName()).AddressList _
.Where(Function(a As IPAddress) Not a.IsIPv6LinkLocal AndAlso Not a.IsIPv6Multicast AndAlso Not a.IsIPv6SiteLocal) _
.First() _
.ToString()
Это может взорваться, поэтому не рассматривайте его как производственный код.