как получить cпиcок имеюшихся сетевых соединении

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

student-uni
Бывалый
Бывалый
 
Сообщения: 242
Зарегистрирован: 01.10.2005 (Сб) 18:54

как получить cпиcок имеюшихся сетевых соединении

Сообщение student-uni » 09.11.2006 (Чт) 11:49

с удаленными понятно вот код.
Показывает все прописанные удаленные соединения

а как отобразить еше имеюсшиеся сетевые подключения ?

Спасибо

Код: Выделить всё

Module RasDef

    Public Const RAS_MaxEntryName As Int32 = 257
    Public Const MAX_PATH As Int32 = 260

    <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)> Public Structure RASENTRYNAME
        Public Size As Int32
        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=RAS_MaxEntryName + 1)> Public EntryName As String
        Public Flags As Int32
        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=MAX_PATH + 1)> Public PhonebookPath As String
    End Structure

    Public Declare Auto Function RasEnumEntries Lib "rasapi32.dll" ( _
                                        ByVal Reserved As String, _
                                        ByVal Phonebook As String, _
                                         <[In](), Out()> ByVal RasEntryNames() As RASENTRYNAME, _
                                        ByRef CountOfBytes As Int32, _
                                        ByRef CountOfEntries As Int32 _
                               ) As Int32


    Public Function GetRasEntries() As RASENTRYNAME()
        Return GetRasEntries(Nothing)
    End Function


    Public Function GetRasEntries(ByVal Phonebook As String) As RASENTRYNAME()
        Return GetRasEntries(Phonebook, 1)
    End Function


    Private Function GetRasEntries(ByVal phonebook As String, ByVal count As Int32) As RASENTRYNAME()
        Dim entries() As RASENTRYNAME
        Dim size As Int32 = Marshal.SizeOf(GetType(RASENTRYNAME))
        Dim rtn As Int32
        Dim CountOfBytes As Int32
        Dim CountOfEntries As Int32 = count

        ReDim entries(CountOfEntries - 1)
        entries(0).Size = size
        CountOfBytes = size * CountOfEntries
        rtn = RasEnumEntries(Nothing, phonebook, entries, CountOfBytes, CountOfEntries)

        If CountOfEntries > count Then
            Return GetRasEntries(phonebook, CountOfEntries)
        Else
            Return entries
        End If
    End Function

End Module




Код: Выделить всё
Private Function CBox_Ras()
        Dim entries() As RASENTRYNAME = GetRasEntries()
        For i As Int32 = 0 To entries.Length - 1
            ComboBox5.Items.Add(entries(i).EntryName)
        Next
    End Function


mad_Max
Бывалый
Бывалый
 
Сообщения: 203
Зарегистрирован: 15.09.2002 (Вс) 21:17
Откуда: Russia, Cherepovets

Сообщение mad_Max » 09.11.2006 (Чт) 12:36

Код: Выделить всё
Imports System.Net.NetworkInformation

Public Sub ShowLANConnections()
        Dim ifaces() As NetworkInterface = NetworkInterface.GetAllNetworkInterfaces()
        Dim str As String = ""
        Dim i As Integer
        For i = 0 To ifaces.Length - 1
            If ifaces(i).NetworkInterfaceType = NetworkInterfaceType.Ethernet Then
                str += ifaces(i).Name + Environment.NewLine
            End If
        Next
        MessageBox.Show(str)
End Sub

Если потребуются не только интерфейсы типа NetworkInterfaceType.Ethernet, то там список внушительный - от WiFi до ADSL. По идее, GetAllNetworkInterfaces() должна возвращать и активные модемные соединения.

student-uni
Бывалый
Бывалый
 
Сообщения: 242
Зарегистрирован: 01.10.2005 (Сб) 18:54

Сообщение student-uni » 09.11.2006 (Чт) 14:02

это я пробовал

мне надо обнаружить Cisco VPN-connect

в отключенном состоянии

Их (как и удаленные ) не видно в отключенном состоянии в приведеннои тобои методе

А в выше приведеннои - видно и в отключенном состоянии
Но не все, а толъко удаленные

Вот я и хотел спросить
а есть ли возможность все просмотреть

student-uni
Бывалый
Бывалый
 
Сообщения: 242
Зарегистрирован: 01.10.2005 (Сб) 18:54

Сообщение student-uni » 09.11.2006 (Чт) 14:58

Нашел в Регистре !!!!!

но может кто подскажет программное решение

cherez WMI naorimer

Спасибо


HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\{34CE16DD-BF94-4455-A383-4B4EF8D9B665}\Connection

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\{34CE16DD-BF94-4455-A383-4B4EF8D9B665}\Connection

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\{A9DCF515-0213-49F3-8247-9FF0D89DBD3A}\Connection

mad_Max
Бывалый
Бывалый
 
Сообщения: 203
Зарегистрирован: 15.09.2002 (Вс) 21:17
Откуда: Russia, Cherepovets

Сообщение mad_Max » 09.11.2006 (Чт) 16:14

Ну не знаю... У меня VPN-соединения в отключенном состоянии нормально перечисляются через RasEnumEntries().

student-uni
Бывалый
Бывалый
 
Сообщения: 242
Зарегистрирован: 01.10.2005 (Сб) 18:54

Сообщение student-uni » 09.11.2006 (Чт) 19:15

у меня тоже,
но это OPEN VPN !!! - не Windows !!!
у него интерфейс - видится как "Подключение по локальной сети" в "Сеть и удалённый доступ " поэтому мне нужен список подключений по локальной сети. Ибо когда он отключён, то NetworkInterface.GetAllNetworkInterfaces его не видит.

Есть наверняка возможность через WMI вытащить, а то через регистр как то не красиво


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 102

    TopList