我想找到一种方法来获取分配给不同接口的 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 地址等...