0

我有一个设备(USB调制解调器),可以在电脑上安装很多网络连接,用户可以随时更改网络连接,也可以随时断开连接。那么我需要获取最后使用的网络连接,这可能吗?windows把它保存在什么东西里?

欢迎使用不同的方法来解决它。

4

1 回答 1

0

我不认为您可以获得“最后一个连接”,但您可以获得活动连接,您还可以通过网络命名空间中的事件检测“网络断开/连接”。

这是我以前使用过的一些 VB.Net 代码,但您应该看到其意图。

Dim networkAvailable As Boolean = Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()
AddHandler System.Net.NetworkInformation.NetworkChange.NetworkAddressChanged, AddressOf NetworkAddressChanged
AddHandler System.Net.NetworkInformation.NetworkChange.NetworkAvailabilityChanged, AddressOf NetworkAvailabilityChanged


Private Sub OutputNetworkAddresses(message As String, linePrefix As String)
    Dim adapters() As Net.NetworkInformation.NetworkInterface
    adapters = Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces
    For Each adapter As Net.NetworkInformation.NetworkInterface In adapters

        Dim properties As IPInterfaceProperties = adapter.GetIPProperties()
        For Each ipi As IPAddressInformation In properties.UnicastAddresses
            Dim ip As Net.IPAddress = ipi.Address
            If ip.IsIPv6LinkLocal Or ip.Equals(IPAddress.Any) Or ip.Equals(IPAddress.IPv6Any) Or IPAddress.IsLoopback(ip) Then
                'Debug.Print("IPv6=" & ip.ToString)
            Else
                Console.WriteLine(String.Format("{0} - {1}", linePrefix, ip.ToString()))
            End If
        Next
    Next
End Sub
于 2012-01-03T00:55:09.440 回答