private void FillNetworkInfo(NetworkAdapter adapter) { //List the connected networks. There are many other APIs //can be called to get network information. try { IEnumNetworkConnections connections = NetworkListManager.GetNetworkConnections(); foreach (INetworkConnection con in connections) { var adapterId = con.GetAdapterId(); if (adapter.Id != adapterId) { continue; } //var connectionId = con.GetConnectionId(); adapter.ConnectivityString = GetConnectivity(con.GetConnectivity()); adapter.IsConnected = con.IsConnected; adapter.IsConnectedToInternet = con.IsConnectedToInternet; INetwork network = con.GetNetwork(); adapter.NetworkName = network.GetName(); // var networkCategory = network.GetCategory(); //var adapter = _networkAdapters.FirstOrDefault(x => x.Id == adapterId); } } catch (Exception ex) { Logging.Log("Error: " + ex.ToString()); } //AdviseforNetworklistManager(); // UnAdviseforNetworklistManager(); }
private List <Connection> GetCurrentConnectionsByNetwork(Guid networkID) { INetwork network = null; IEnumNetworkConnections enumConnections = null; List <INetworkConnection> connections = new List <INetworkConnection>(); try { var results = new List <Connection>(); network = _manager.GetNetwork(networkID); enumConnections = network.GetNetworkConnections(); connections.AddRange(enumConnections.Cast <INetworkConnection>()); return(connections.Select(ConvertConnection).ToList()); } catch (COMException e) when((uint)e.ErrorCode == 0x8000FFFF) { return(null); } finally { foreach (var connection in connections) { ReleaseComObject(connection); } ReleaseComObject(enumConnections); ReleaseComObject(network); } }
void IDisposable.Dispose() { if (conns == null) { return; } Marshal.FinalReleaseComObject(conns); conns = null; }
private static IEnumerable <NetworkConnection> GetItems(IEnumNetworkConnections conns) { IEnumerable <NetworkConnection> ie = null; try { ie = (conns ?? Manager?.GetNetworkConnections()).Cast <INetworkConnection>().Select(i => new NetworkConnection(i)); } catch (UnauthorizedAccessException) { } catch (ExternalException) { } return(ie); }
internal NetworkConnectionIterator(IEnumNetworkConnections conns = null) { this.conns = conns; }
void IDisposable.Dispose() { conns = null; }