VB.NET:抓取IP地址并将其绑定到接口

问题描述

|| 我想找到一种方法获取分配给不同接口的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地址。 我可能可以使用一些贫民窟的方法来发布命令行命令,并从ipconfig中解析所有信息,或者获取GUID并通过注册表运行,但是我觉得应该有一个更简单,更有效的方法。 我想要的一个很好的例子是能够生成类似IPCONfig的列表的功能,其中包含接口信息及其指定的IP地址,等等。     

解决方法

        在你的循环尝试
Dim ip = nic.GetIPProperties().UnicastAddresses(0).Address;
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...