public static List <PeerNodeModel> GetPeerInfo(IConnectionManager connectionManager) { var peerList = new List <PeerNodeModel>(); List <INetworkPeer> peers = connectionManager.ConnectedPeers.ToList(); foreach (INetworkPeer peer in peers) { if ((peer != null) && (peer.RemoteSocketAddress != null)) { var peerNode = new PeerNodeModel { Id = peers.IndexOf(peer), Address = peer.RemoteSocketEndpoint.ToString() }; if (peer.PeerVersion != null) { peerNode.LocalAddress = peer.PeerVersion.AddressReceiver?.ToString(); peerNode.Services = ((ulong)peer.PeerVersion.Services).ToString("X"); peerNode.Version = (uint)peer.PeerVersion.Version; peerNode.SubVersion = peer.PeerVersion.UserAgent; peerNode.StartingHeight = peer.PeerVersion.StartHeight; } var connectionManagerBehavior = peer.Behavior <IConnectionManagerBehavior>(); if (connectionManagerBehavior != null) { peerNode.Inbound = peer.Inbound; peerNode.IsWhiteListed = connectionManagerBehavior.Whitelisted; } if (peer.TimeOffset != null) { peerNode.TimeOffset = peer.TimeOffset.Value.Seconds; } peerList.Add(peerNode); } } return(peerList); }
public List <PeerNodeModel> GetPeerInfo() { List <PeerNodeModel> peerList = new List <PeerNodeModel>(); List <Node> nodes = this.ConnectionManager.ConnectedNodes.ToList(); foreach (Node node in nodes) { if (node != null && node.RemoteSocketAddress != null) { PeerNodeModel peerNode = new PeerNodeModel { Id = nodes.IndexOf(node), Address = node.RemoteSocketEndpoint.ToString() }; if (node.MyVersion != null) { peerNode.LocalAddress = node.MyVersion.AddressReceiver?.ToString(); peerNode.Services = ((ulong)node.MyVersion.Services).ToString("X"); peerNode.Version = (uint)node.MyVersion.Version; peerNode.SubVersion = node.MyVersion.UserAgent; peerNode.StartingHeight = node.MyVersion.StartHeight; } ConnectionManagerBehavior connectionManagerBehavior = node.Behavior <ConnectionManagerBehavior>(); if (connectionManagerBehavior != null) { peerNode.Inbound = connectionManagerBehavior.Inbound; peerNode.IsWhiteListed = connectionManagerBehavior.Whitelisted; } if (node.TimeOffset != null) { peerNode.TimeOffset = node.TimeOffset.Value.Seconds; } peerList.Add(peerNode); } } return(peerList); }