1

割り当てられた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のようなリストを作成する機能です...

4

1 に答える 1

1

forループで試してみてください

Dim ip = nic.GetIPProperties().UnicastAddresses(0).Address;
于 2011-05-27T21:09:16.933 に答える