Дано
Два ВПН соединения (или более). С1 и С2. с разными цель Ай Пи
Создаются На одном виртуальном адаптере.
Напр. С1 соединяется по ВПН с - 192.168.2.133 а
С2 - 192.169.3.144
После соединения каждый адаптер получает динамический адрес,
который каждый раз выпадает случайным образом .
На этот динамический адрес я добавляю маршрут
типа ROUTE ADD причем для С1 один, а для С2 другой.
Вопрос: а как мне не перепутать виртуальные интерфейсы ?
Ведь маршрут я могу положить только после того как соединение установлено, выловив динамически присвоенный Ай пи по Мак адресу например. Но нет гарантии, что пока я ожидаю появления С1,
кто то не вызовет С2. И я буду иметь два абсолютно одинаковых интерфейса с разными ай пи , но не буду знать кому положить какой маршрут.
Как различить их ?
Внизу привожу текст тестовой проги
У кого есть возможность попробовать
с двумя ВПН на одном витуальном интерфейсе
попробуйте найти отличия, которые бы сохранялись
после повторного соединения.
Спасибо всем
- Код: Выделить всё
Imports System.Net
Imports System.Net.NetworkInformation
'Imports System.Net.NetworkInformation
Public Class Form1
Dim ni() As NetworkInterface
Dim ni2 As NetworkInterface
Dim pa() As IPAddress
Dim pa2 As IPAddress
Dim ipp As GatewayIPAddressInformation
Dim ia As IPInterfaceProperties
Dim ia2 As Collection
Dim ipp2 As GatewayIPAddressInformationCollection
Dim ipp3 As IPAddressCollection
Dim ipp4 As UnicastIPAddressInformationCollection
Dim ipp5 As UnicastIPAddressInformation
Dim ipp6 As IPAddressInformationCollection
Dim ipp7 As IPAddressInformation
Dim iip8 As TcpConnectionInformation
Dim iip9 As IPGlobalProperties
Dim ob As Object
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ni = NetworkInterface.GetAllNetworkInterfaces
ListBox1.Items.Clear()
For Each ni2 In ni
ListBox1.Items.Add("")
ListBox1.Items.Add("Description " & ni2.Description)
ListBox1.Items.Add("MACAddresses: " & ni2.GetPhysicalAddress.ToString) 'MAC
ListBox1.Items.Add("ID: " & ni2.Id.ToString) 'MAC
ListBox1.Items.Add("Interface Typ: " & ni2.NetworkInterfaceType.ToString)
ListBox1.Items.Add("Op Status: " & ni2.OperationalStatus.ToString)
ListBox1.Items.Add("Speed : " & ni2.Speed.ToString)
' ListBox1.Items.Add("Multicast : " & ni2.SupportsMulticast.ToString)
ia = (ni2.GetIPProperties)
ipp2 = ia.GatewayAddresses
'For y = 0 To ipp2.Count - 1
'ListBox1.Items.Add(ipp2.Item(y).Address)
'Next
For Each ipp In ipp2
ListBox1.Items.Add("GatewayAddresses: " & ipp.Address.ToString)
Next
ipp3 = ia.DnsAddresses
For Each pa2 In ipp3
ListBox1.Items.Add("DNS adresses: " & pa2.ToString)
Next
ipp3 = ia.DhcpServerAddresses 'MASK
For Each pa2 In ipp3
ListBox1.Items.Add("MASKE(DHCP): " & pa2.ToString)
Next
ipp4 = ia.UnicastAddresses 'WINS
For Each ipp5 In ipp4
ListBox1.Items.Add("UncastAddresses: " & ipp5.Address.ToString)
Next
ipp6 = ia.AnycastAddresses
For Each ipp7 In ipp6
ListBox1.Items.Add("AnycastAddresses: " & ipp7.Address.ToString)
Next
ListBox1.Items.Add("DNS Suffix: " & ia.DnsSuffix.ToString)
ListBox1.Items.Add("HASH CODE: " & ia.GetHashCode().ToString)
Next
' iip9.GetActiveTcpConnections()
End Sub
End Class