>

vb.net 용 VPN VB6 앱을 수정하고 있습니다. NetworkInterface를 사용하여 현재 활성 연결 이름과 IP 주소를 얻으려면 어떻게합니까? VPN이 활성화되어 있으면 이더넷 또는 Wi-Fi 연결이 활성화되어 있지 않아야합니다. 내 응용 프로그램은 Windows VPN 연결 (vpn 이름 및 IP를 표시해야 함) 또는 OpenVPN (가장 가능성있는 이름을 Ethernet 2로 표시해야 함) 또는 VPN 응용 프로그램 (가장 가능성이 높은 이름)을 사용하는지에 관계없이 현재 활성 연결 이름 및 IP 주소를 나열해야합니다 이더넷 2).

  • 답변 # 1

    아니요, 윈도우는 모든 인터페이스를 보여 주며 active는 VPN에 추가 된 인터페이스 중 하나 이상이어야합니다. 네트워크 연결을 통해 VPN (가상 사설망) 터널을 발생시킵니다.

      Dim interfaces As NetworkInformation.NetworkInterface() = NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()
      If interfaces.GetLongLength(0) > 0 Then
        For Each Interface As NetworkInformation.NetworkInterface In interfaces
          If String.Compare(Interface.Description, "Tap") > 0 And String.Compare(Interface.Description, "Teredo") < 0 Then
          End if
        Next
      End if
    
    

    이 abouve는 활성화 된 openvpn 연결을 위해 작동합니다. 다른 인터페이스 방법이 VPN 연결을 식별하는 데 더 적합한 경우 디버깅하고 lokks 할 수 있습니다.

  • 답변 # 2

    지금까지 작업 코드는 다음과 같습니다.

    Public Function GetConnectionList() As List(Of String())
            Dim conList As New List(Of String())
            Dim conName As String = "dummy"
            Dim last_conName As String = "dummy"
            Dim conIPstr As String = "dummy"
            Dim str As String
            conList.Clear()
            Dim nic As NetworkInterface() = NetworkInterface.GetAllNetworkInterfaces()
            If nic.GetLongLength(0) > 0 Then
                For Each netadapter As NetworkInterface In nic
                    conName = netadapter.Name
                    Dim strArr As String() = New String(2) {"dummy", "dummy", "dummy"}
                    If Not conName.Contains("VirtualBox") _
                        And Not conName.Contains("Loopback") _
                        And conName <> "Ethernet" _
                        And conName <> "Wi-Fi" Then
                        strArr(0) = conName
                        If netadapter.OperationalStatus = OperationalStatus.Up Then
                            strArr(1) = "Current Sataus: Active"
                            Try
                                conIPstr = GetMyIPstr()
                            Catch e As Exception
                                MessageBox.Show("Error: Function GetConnectionList: Error returning IP Address" & vbCrLf & vbCrLf & e.Message)
                            End Try
                            strArr(2) = conIPstr
                        Else
                            strArr(1) = "Current Sataus: Not Active"
                            strArr(2) = "No IP Address"
                        End If
                        conList.Add(strArr)
                    End If
                Next
            Else
                MessageBox.Show("Error: Function GetConnectionList: No Net Adapter List")
            End If
            Return conList
        End Function
         Private Function GetMyIPstr() As String
            Dim client As New WebClient
            Dim s As String = "No IP Address"
            '// Add a user agent header in case the requested URI contains a query.
            client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR1.0.3705;)")
            Dim baseurl As String = "http://checkip.dyndns.org/"
            ' with proxy server only:
            Dim proxy As IWebProxy = WebRequest.GetSystemWebProxy()
            proxy.Credentials = CredentialCache.DefaultNetworkCredentials
            client.Proxy = proxy
            Dim data As Stream
            Try
                data = client.OpenRead(baseurl)
            Catch ex As Exception
                MsgBox("open url " & ex.Message)
                Exit Function
            End Try
            Dim reader As StreamReader = New StreamReader(data)
            s = reader.ReadToEnd()
            data.Close()
            reader.Close()
            s = s.Replace("<html><head><title>Current IP Check</title></head><body>", "").Replace("</body></html>", "").ToString()
            'MessageBox.Show(s)
            'Me.Text = s
            Return s
        End Function
    
    

  • 이전 sql - Excel에서 텍스트를 무시하는 ADODB 객체
  • 다음 firebase - Xamarin Android의 Android 디바이스에서 알림을받지 못함