我想找到一种方法来将指定的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等......
答案 0 :(得分:1)
在你的循环尝试
Dim ip = nic.GetIPProperties().UnicastAddresses(0).Address;