Бих искал да намеря начин да взема присвоените 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)
Което е чудесно, но не мога да определя кой интерфейс се използва, нито може да определи присвоен IP адрес, който не минава през DNS или множество NICS.
Възможно е да направя някакъв гето метод за издаване на команда от командния ред и анализиране на цялата информация от ipconfig или получаване на GUID и преминаване през системния регистър, но смятам, че трябва да има по-лесен и по-ефективен метод.
Добър пример за това, което искам, е възможността да се създаде списък като IPCONFIG, където има информация за интерфейса и определения им IP адрес и т.н.