我有一个设备(USB调制解调器),可以在电脑上安装很多网络连接,用户可以随时更改网络连接,也可以随时断开连接。那么我需要获取最后使用的网络连接,这可能吗?windows把它保存在什么东西里?
欢迎使用不同的方法来解决它。
我不认为您可以获得“最后一个连接”,但您可以获得活动连接,您还可以通过网络命名空间中的事件检测“网络断开/连接”。
这是我以前使用过的一些 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