VB.NET:抓取和绑定接口的IP地址

时间:2011-05-27 20:47:44

标签: vb.net ip ipv6 ipv4

我想找到一种方法来将指定的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或多个NICS的已分配IP地址。

我可以做一些ghetto方法来发出命令行命令并解析ipconfig中的所有信息或获取GUID并通过注册表运行但我觉得应该有一个更容易更有效的方法。

我想要的一个很好的例子就是能够生成像IPCONFIG这样的列表,它有接口信息和指定的IP Addresess等......

1 个答案:

答案 0 :(得分:1)

在你的循环尝试

Dim ip = nic.GetIPProperties().UnicastAddresses(0).Address;