割り当てられたIPv4アドレスとIPv6アドレスを異なるインターフェイスに取得し、それらが関連付けられているインターフェイスを判別できるようにする方法を見つけたいと思います。
現在、「System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces」をループしており、インターフェイス固有の情報を取得できます。
For Each nic As System.Net.NetworkInformation.NetworkInterface In System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()
myarr(count2, 0) = (String.Format("{0}", nic.Description))
myarr(count2, 1) = (String.Format("{0}", nic.GetPhysicalAddress))
myarr(count2, 2) = (String.Format("{0}", nic.OperationalStatus))
myarr(count2, 3) = (String.Format("{0}", nic.Speed))
count2 += 1
Next
この方法では、残念ながら、割り当てられたIPアドレスを取得する簡単な方法を決定できません。
google-fooで簡単に見つけることができる最も一般的な方法は、次のような方法でIPを見つけることです。
Dim ipAdd As IPAddress = Dns.GetHostEntry(System.Net.Dns.GetHostName()).AddressList.First(Function(f) f.AddressFamily = Sockets.AddressFamily.InterNetwork)
これは問題ありませんが、使用されているインターフェイスを特定することも、DNSまたは複数のNICを経由しない割り当てられたIPアドレスを特定することもできません。
コマンドラインコマンドを発行し、ipconfigからすべての情報を解析するか、GUIDを取得してレジストリを実行するというゲットーの方法を実行できる可能性がありますが、より簡単で効率的な方法があるはずです。
私が欲しいものの良い例は、インターフェース情報とそれらの指定されたIPアドレスなどを含むIPCONFIGのようなリストを作成する機能です...