2014-10-18 2 views
0

Я хочу показать только подключенный адаптер с ip-адресом с одного компьютера. В настоящее время у меня есть этот код, но он также показывает loopback-адаптер. Как я могу показать только рабочий статус только для отображения?Показанный подключенный адаптер

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 

    Dim Interfaces As NetworkInterface() = NetworkInterface.GetAllNetworkInterfaces 
    Dim adapter As NetworkInterface 
    Dim myAdapterProps As IPInterfaceProperties = Nothing 
    Dim myGateways As GatewayIPAddressInformationCollection = Nothing 

    For Each adapter In Interfaces 
     TextBox1.AppendText("" & Environment.NewLine) 
     If adapter.NetworkInterfaceType = NetworkInterfaceType.Loopback Then 
      Continue For 
     End If 
     TextBox1.AppendText(adapter.Name & Environment.NewLine) 
     TextBox1.AppendText(adapter.Description & Environment.NewLine) 
     myAdapterProps = adapter.GetIPProperties 
     myGateways = myAdapterProps.GatewayAddresses 
     Dim IPInfo As UnicastIPAddressInformationCollection = adapter.GetIPProperties().UnicastAddresses 
     Dim properties As IPInterfaceProperties = adapter.GetIPProperties() 

     For Each IPAddressInfo As UnicastIPAddressInformation In IPInfo 

      TextBox1.AppendText("IP Address : " & IPAddressInfo.Address.ToString & Environment.NewLine) 

    Next 
End Sub 

ответ

0

Вы почти находитесь. Если вы хотите видеть только адаптеры, которые имеют статус до, затем исключить все адаптеры, которые не имеют такой статус в вашем continue отрасли:

adapter.OperationalStatus <> OperationalStatus.Up 

Если вы хотите дополнительно удалить адаптер Teredo с выхода, затем исключить адаптер, если имя содержит слово Teredo:

adapter.Name.Contains("Teredo") 

Измененный код:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 

Dim Interfaces As NetworkInterface() = NetworkInterface.GetAllNetworkInterfaces 
Dim adapter As NetworkInterface 
Dim myAdapterProps As IPInterfaceProperties = Nothing 
Dim myGateways As GatewayIPAddressInformationCollection = Nothing 

For Each adapter In Interfaces 
    TextBox1.AppendText("" & Environment.NewLine) 
    If adapter.NetworkInterfaceType = NetworkInterfaceType.Loopback _ 
    or adapter.OperationalStatus <> OperationalStatus.Up _ 
    or adapter.Name.Contains("Teredo") Then 
     Continue For 
    End If 
    TextBox1.AppendText(adapter.Name & Environment.NewLine) 
    TextBox1.AppendText(adapter.Description & Environment.NewLine) 
    myAdapterProps = adapter.GetIPProperties 
    myGateways = myAdapterProps.GatewayAddresses 
    Dim IPInfo As UnicastIPAddressInformationCollection = adapter.GetIPProperties().UnicastAddresses 
    Dim properties As IPInterfaceProperties = adapter.GetIPProperties() 

    For Each IPAddressInfo As UnicastIPAddressInformation In IPInfo 
     TextBox1.AppendText("IP Address : " & IPAddressInfo.Address.ToString & Environment.NewLine) 
    Next IPAddressInfo 
Next 

End Sub 

В этом случае должны отображаться не местные адаптеры, а не только адаптеры Teredo.

+0

THX много !! оно работает. одна вещь, которую я хочу спросить. Подключение по локальной сети Atheros AR8151 PCI-E Gigabit Ethernet Controller IP-адрес: fe80 :: 356C: 885f: 69a4: a0f4% 11 IP-адрес: 10.67.102.187 Подключение по локальной сети * 34 Teredo Tunneling Pseudo-Interface IP-адрес: 2001: 0: 9d38: 6ab8: 891: 36d3: f5bc: 9944 IP-адрес: fe80 :: 891: 36d3: f5bc: 9944% 63 Что такое второе соединение (псевдопроводник Teredo Tunneling Pseudo-Interface)? в моем центре совместного доступа к сети нет такого подключения – user2364790

+0

Teredo - это виртуальный адаптер для туннелирования IPv6. Его нельзя использовать напрямую, поэтому вы не увидите его в списке адаптеров в окнах. Подробное объяснение см. В этой статье [Wikipedia article] (http://en.wikipedia.org/wiki/Teredo_tunneling). – pasty

+0

Могу ли я удалить его из показа внутри списка соединений? – user2364790

Смежные вопросы