/// <inheritdoc /> public async Task BroadcastAsync(Payload payload) { // TODO: Optimize how federation peers are identified. List <INetworkPeer> peers = this.connectionManager.ConnectedPeers.ToList(); var ipAddressComparer = new IPAddressComparer(); // TODO: Can do the send to each peer in parallel. foreach (INetworkPeer peer in peers) { // Broadcast to peers. if (!peer.IsConnected) { continue; } if (this.federatedPegSettings.FederationNodeIpEndPoints.Any(e => ipAddressComparer.Equals(e.Address, peer.PeerEndPoint.Address))) { try { await peer.SendMessageAsync(payload).ConfigureAwait(false); } catch (OperationCanceledException) { } } } }
/// <summary> /// Gets the ServerInfo object of current server and it represents the specific information on the current proxy. /// </summary> /// <returns></returns> internal ServerInfo GetMyProxyInfo() { for (int i = 0; i < Proxies.Count; i++) { foreach (var instance in Proxies[i].Instances) { if (instance.AssemblyPath != null) { if (IPAddressComparer.CompareIPAddress(instance.EndPoint.Address, Global.MyIPAddress) == 0 && FileUtility.CompletePath(instance.AssemblyPath, false).ToLowerInvariant().Equals(Global.MyAssemblyPath.ToLowerInvariant())) { return(instance); } } } foreach (var instance in Proxies[i].Instances) { if (IPAddressComparer.CompareIPAddress(instance.EndPoint.Address, Global.MyIPAddress) == 0) { return(instance); } } } return(null); }
public void GetHashCode2() { IPAddressComparer comparer = IPAddressComparer.Default as IPAddressComparer; try { object x = null; int hash = comparer.GetHashCode(x); } catch (ArgumentNullException) { Assert.IsTrue(true); } catch (Exception e) { Assert.Fail(e.Message); } try { IPAddress x = null; int hash = comparer.GetHashCode(x); } catch (ArgumentNullException) { Assert.IsTrue(true); } catch (Exception e) { Assert.Fail(e.Message); } }
public CounterChainSessionManager( ILoggerFactory loggerFactory, IFederationWalletManager federationWalletManager, IFederationWalletTransactionHandler federationWalletTransactionHandler, IConnectionManager connectionManager, Network network, FederationGatewaySettings federationGatewaySettings, IInitialBlockDownloadState initialBlockDownloadState, IFullNode fullnode, IBroadcasterManager broadcastManager, ConcurrentChain concurrentChain, DataFolder dataFolder, IDateTimeProvider dateTimeProvider, ICrossChainTransactionAuditor crossChainTransactionAuditor = null) { Guard.NotNull(loggerFactory, nameof(loggerFactory)); Guard.NotNull(network, nameof(network)); Guard.NotNull(dataFolder, nameof(dataFolder)); this.logger = loggerFactory.CreateLogger(this.GetType().FullName); this.network = network; this.connectionManager = connectionManager; this.initialBlockDownloadState = initialBlockDownloadState; this.concurrentChain = concurrentChain; this.fullnode = fullnode; this.broadcastManager = broadcastManager; this.federationWalletManager = federationWalletManager; this.federationWalletTransactionHandler = federationWalletTransactionHandler; this.federationGatewaySettings = federationGatewaySettings; this.ipAddressComparer = new IPAddressComparer(); }
/// <summary> /// Gets the ServerInfo object of current server and it represents the specific information on the current proxy. /// </summary> /// <returns></returns> internal ServerInfo GetMyProxyInfo() { for (int i = 0; i < Proxies.Count; i++) { foreach (var instance in Proxies[i].Instances) { if (instance.AssemblyPath != null) { if (IPAddressComparer.IsLocalhost(instance.HostName) && FileUtility.ComparePath(instance.AssemblyPath, Global.MyAssemblyPath)) { return(instance); } } } foreach (var instance in Proxies[i].Instances) { if (IPAddressComparer.IsLocalhost(instance.HostName)) { return(instance); } } } return(null); }
/// <inheritdoc /> public async Task BroadcastAsync(RequestPartialTransactionPayload payload) { List <INetworkPeer> peers = this.connectionManager.ConnectedPeers.ToList(); var ipAddressComparer = new IPAddressComparer(); foreach (INetworkPeer peer in peers) { // Broadcast to peers. if (!peer.IsConnected) { continue; } if (this.federationGatewaySettings.FederationNodeIpEndPoints.Any(e => ipAddressComparer.Equals(e.Address, peer.PeerEndPoint.Address))) { try { await peer.SendMessageAsync(payload).ConfigureAwait(false); } catch (OperationCanceledException) { } } } }
public void Equals2() { IPAddressComparer comparer = IPAddressComparer.Default as IPAddressComparer; string x = "127.0.0.0"; string y = "128.0.0.0"; Assert.IsFalse(comparer.Equals(x, y)); Assert.IsTrue(comparer.Equals(x, x)); }
public void Equals4() { IPAddressComparer comparer = IPAddressComparer.Default as IPAddressComparer; IPAddress x = null; IPAddress y = IPAddress.Parse("128.0.0.0"); Assert.IsFalse(comparer.Equals(x, y)); Assert.IsFalse(comparer.Equals(y, x)); }
public void Equals() { IPAddressComparer comparer = IPAddressComparer.Default as IPAddressComparer; IPAddress x = IPAddress.Loopback; IPAddress y = IPAddress.Parse("128.0.0.0"); Assert.IsFalse(comparer.Equals(x, y)); Assert.IsTrue(comparer.Equals(x, x)); }
public void Compare4() { IPAddressComparer comparer = IPAddressComparer.Default as IPAddressComparer; //Assert.IsTrue(comparer.Compare(null, IPAddress.Parse("128.0.0.0")) == -1); //Assert.IsTrue(comparer.Compare(IPAddress.Parse("128.0.0.0"), null) == 1); object x = null; object y = null; Assert.IsTrue(comparer.Compare(x, y) == 0); }
private static void AddToList(List <IPAddress> list, byte[] address) { IPAddress a1 = new IPAddress(address); IPAddressComparer ipc = new IPAddressComparer(); int index = list.BinarySearch(a1, ipc); if (index >= 0) { throw new Exception("IP address already exists in list"); } list.Insert(~index, a1); }
public void Describe_Airport_Formats_Airport_Correctly() { var worksheet = new ExcelWorksheetData(TestContext); var comparer = new IPAddressComparer(); var lhs = worksheet.String("LHS") == null ? null : IPAddress.Parse(worksheet.String("LHS")); var rhs = worksheet.String("RHS") == null ? null : IPAddress.Parse(worksheet.String("RHS")); var expectedResult = worksheet.Int("Result"); var result = comparer.Compare(lhs, rhs); if(expectedResult < 0) Assert.IsTrue(result < 0); else if(expectedResult > 0) Assert.IsTrue(result > 0); else Assert.AreEqual(0, result); }
public void Compare2() { IPAddressComparer comparer = IPAddressComparer.Default as IPAddressComparer; Assert.IsTrue(comparer.Compare(IPAddress.Loopback, IPAddress.Parse("128.0.0.0")) < 0); Assert.IsTrue(comparer.Compare(IPAddress.Parse("128.0.0.0"), IPAddress.Loopback) > 0); Assert.IsTrue(comparer.Compare(IPAddress.Loopback, IPAddress.Loopback) == 0); IPAddress x = new IPAddress(1067890); // 114.75.16.0 IPAddress y = new IPAddress(1890329); // 25.216.28.0 Assert.IsTrue(comparer.Compare(x, y) > 0); Assert.IsTrue(comparer.Compare(y, x) < 0); Assert.IsTrue(comparer.Compare(x, x) == 0); }
public void Compare1() { IPAddressComparer comparer = IPAddressComparer.Default as IPAddressComparer; string x = "127.0.0.0"; string y = "128.0.0.0"; Assert.IsTrue(comparer.Compare(x, y) < 0); Assert.IsTrue(comparer.Compare(y, x) > 0); Assert.IsTrue(comparer.Compare(x, x) == 0); x = "1067890"; // 0.16.75.114 y = "1890329"; // 0.28.216.25.0 Assert.IsTrue(comparer.Compare(x, y) < 0); Assert.IsTrue(comparer.Compare(y, x) > 0); Assert.IsTrue(comparer.Compare(x, x) == 0); }
public void Equals3() { IPAddressComparer comparer = IPAddressComparer.Default as IPAddressComparer; string x = "abc"; string y = "def"; Assert.IsFalse(comparer.Equals(x, y)); Assert.IsTrue(comparer.Equals(x, x)); x = null; y = null; Assert.IsTrue(comparer.Equals(x, y)); Assert.IsFalse(comparer.Equals(x, "abc")); Assert.IsFalse(comparer.Equals("abc", y)); Assert.IsFalse(comparer.Equals("abc", "127.0.0.0")); Assert.IsFalse(comparer.Equals("127.0.0.0", "abc")); }
public void Compare3() { IPAddressComparer comparer = IPAddressComparer.Default as IPAddressComparer; try { int result = comparer.Compare(IPAddress.Loopback, null); } catch (ArgumentNullException e) { if (e.ParamName == "y") { Assert.IsTrue(true); } else { Assert.Fail(e.Message); } } catch (Exception e) { Assert.Fail(e.Message); } try { int result = comparer.Compare(null, IPAddress.Loopback); } catch (ArgumentNullException e) { if (e.ParamName == "x") { Assert.IsTrue(true); } else { Assert.Fail(e.Message); } } catch (Exception e) { Assert.Fail(e.Message); } }
public void IPEqualsIPShould() { IPAddress ip1 = IPAddress.Parse("192.168.0.1"); IPAddress ip2 = IPAddress.Parse("192.168.0.1"); IPAddress ip3 = IPAddress.Parse("192.168.0.2"); IPAddressComparer comparer = new IPAddressComparer(); //Test equals method in IPAddressComparer bool isAddressEqual = comparer.Equals(ip1, ip2); bool isAddressEqual2 = comparer.Equals(ip2, ip3); Assert.True(isAddressEqual); Assert.False(isAddressEqual2); //Test compare method in IPAddressComparer int compare = comparer.Compare(ip1, ip3); Assert.Equal(-1, compare); }
public void GetHashCode1() { IPAddressComparer comparer = IPAddressComparer.Default as IPAddressComparer; string x = "127.0.0.0"; Assert.AreEqual(IPAddress.Parse(x).GetHashCode(), comparer.GetHashCode(x)); object y = "127.0.0.0"; Assert.AreEqual(IPAddress.Parse(y.ToString()).GetHashCode(), comparer.GetHashCode(y)); IPAddress z = IPAddress.Loopback; Assert.AreEqual(z.GetHashCode(), comparer.GetHashCode(z)); string a = "abc"; Assert.AreEqual(a.GetHashCode(), comparer.GetHashCode(a)); }
public void GetHashCode4() { IPAddressComparer comparer = IPAddressComparer.Default as IPAddressComparer; object x = IPAddress.Loopback; Assert.AreEqual(IPAddress.Loopback.GetHashCode(), comparer.GetHashCode(x)); object y = DateTime.Today; Assert.AreEqual(y.GetHashCode(), comparer.GetHashCode(y)); object z = "127.0.0.0"; Assert.AreEqual(IPAddress.Parse(z.ToString()).GetHashCode(), comparer.GetHashCode(z)); object a = "xyz"; Assert.AreEqual(a.GetHashCode(), comparer.GetHashCode(a)); }
public void GetHashCode3() { IPAddressComparer comparer = IPAddressComparer.Default as IPAddressComparer; try { string x = null; int hash = comparer.GetHashCode(x); } catch (ArgumentNullException) { Assert.IsTrue(true); } catch (Exception e) { Assert.Fail(e.Message); } Assert.AreEqual(String.Empty.GetHashCode(), comparer.GetHashCode(String.Empty)); }
public PartialTransactionsBehavior( ILoggerFactory loggerFactory, IFederationWalletManager federationWalletManager, Network network, IFederationGatewaySettings federationGatewaySettings, ICrossChainTransferStore crossChainTransferStore) { Guard.NotNull(loggerFactory, nameof(loggerFactory)); Guard.NotNull(federationWalletManager, nameof(federationWalletManager)); Guard.NotNull(network, nameof(network)); Guard.NotNull(federationGatewaySettings, nameof(federationGatewaySettings)); Guard.NotNull(crossChainTransferStore, nameof(crossChainTransferStore)); this.logger = loggerFactory.CreateLogger(this.GetType().FullName); this.loggerFactory = loggerFactory; this.federationWalletManager = federationWalletManager; this.network = network; this.federationGatewaySettings = federationGatewaySettings; this.crossChainTransferStore = crossChainTransferStore; this.ipAddressComparer = new IPAddressComparer(); }
public int Compare(object x, object y) { UltraGridCell xCell = (UltraGridCell)x; UltraGridCell yCell = (UltraGridCell)y; //return DateTime.Compare((DateTime)xCell.Row.Cells["Date"].Value, (DateTime)yCell.Row.Cells["Date"].Value); string strFirstIP = xCell.Row.Cells[m_strKey].Value.ToString(); string strSecondIP = yCell.Row.Cells[m_strKey].Value.ToString(); if (strFirstIP == "") { return(1); } else if (strSecondIP == "") { return(-1); } else { return(IPAddressComparer.ComapreIP(strFirstIP, strSecondIP)); } }
/// <summary> /// If this group has associated IP addresses does the specified IP address /// fall within the defined range. /// </summary> /// <param name="ipAddress"></param> /// <returns></returns> public bool ContainsIP(string ipAddress) { if (ipAddress == "") { return(false); } // Convert the supplied IP address to a .NET IPAddress try { // If no starting IP then no match for sure if (this.StartIP == "") { return(false); } // OK break the start and end IP address into individual entries string[] startIpAddresses = this.StartIP.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries); string[] endIpAddresses = this.EndIP.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries); // ...and check if the IP address we have supplied fits into that range for (int index = 0; index < startIpAddresses.Length; index++) { if ((IPAddressComparer.IsGreaterOrEqual(ipAddress, startIpAddresses[index])) && (IPAddressComparer.IsLessOrEqual(ipAddress, endIpAddresses[index]))) { return(true); } } } catch (Exception) { } return(false); }
/// <summary> /// Ensure that the IP address range entered is valid /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void bnOK_Click(object sender, EventArgs e) { // If either address has not been specified then this is not valid if ((startIPAddress.Text == "") || (endIPAddress.Text == "")) { MessageBox.Show("You must specify both a start and end IP address", "Range Error"); startIPAddress.Focus(); DialogResult = DialogResult.None; } else if (IPAddressComparer.IsGreater(startIPAddress.Text, endIPAddress.Text)) { MessageBox.Show("The starting IP Address must be less than the ending address", "Range Error"); startIPAddress.Focus(); DialogResult = DialogResult.None; } else { // OK save the values _lower = startIPAddress.Text; _upper = endIPAddress.Text; } }
public void Compare6() { IPAddressComparer comparer = new IPAddressComparer(); object x = "127.0.0.0"; object y = "128.0.0.0"; Assert.IsTrue(comparer.Compare(x, y) < 0); Assert.IsTrue(comparer.Compare(y, x) > 0); Assert.IsTrue(comparer.Compare(x, x) == 0); x = "1567890"; y = "1890329"; Assert.IsTrue(comparer.Compare(x, y) < 0); Assert.IsTrue(comparer.Compare(y, x) > 0); Assert.IsTrue(comparer.Compare(x, x) == 0); x = String.Empty; y = String.Empty; Assert.IsTrue(comparer.Compare(x, "127.0.0.0") == -1); Assert.IsTrue(comparer.Compare("127.0.0.0", y) == 1); Assert.IsTrue(comparer.Compare(x, y) == 0); }
public void Describe_Airport_Formats_Airport_Correctly() { var worksheet = new ExcelWorksheetData(TestContext); var comparer = new IPAddressComparer(); var lhs = worksheet.String("LHS") == null ? null : IPAddress.Parse(worksheet.String("LHS")); var rhs = worksheet.String("RHS") == null ? null : IPAddress.Parse(worksheet.String("RHS")); var expectedResult = worksheet.Int("Result"); var result = comparer.Compare(lhs, rhs); if (expectedResult < 0) { Assert.IsTrue(result < 0); } else if (expectedResult > 0) { Assert.IsTrue(result > 0); } else { Assert.AreEqual(0, result); } }
public override CollectedData OnAcquire() { // Find the IP addresses to ping. This will typically provide the IP addresses // of the devices being monitored, and can also provide a subnet to ping, and // also any extra addresses to ping. IPAddressRequest request = new IPAddressRequest("PingCollector"); RequestBus.Instance.MakeRequest(request); if (request.IsHandled == false) { return(null); } ListData <PingResult> d = new ListData <PingResult>(Context); List <Tuple <IPAddress, string> > to_ping = new List <Tuple <IPAddress, string> >(); Dictionary <string, string> ip_to_name_map = new Dictionary <string, string>(); request.IPAddresses.ForEach(i => ip_to_name_map[i.Item1] = i.Item2); // See if a full subnet ping was requested foreach (string s in request.Subnets) { if (IPAddress.TryParse(s, out IPAddress subnet)) { byte[] ping_addr = subnet.GetAddressBytes(); // Collect all the pingable IP addresses on the specified subnet. // 0 and 255 are reserved, so no need to ping them. for (byte i = 1; i < 255; ++i) { ping_addr[3] = i; IPAddress addr = new IPAddress(ping_addr); // Get the name of the device, if we happen to know it string name = string.Empty; ip_to_name_map.TryGetValue(addr.ToString(), out name); to_ping.Add(Tuple.Create(addr, name)); } } } // Now put in the other ip addresses that are being monitored. // Add them to the list of IPs to ping. foreach (Tuple <string, string> ip in request.IPAddresses) { try { if (IPAddress.TryParse(ip.Item1, out IPAddress addr)) { to_ping.Add(Tuple.Create(addr, ip.Item2)); } } catch (Exception) { } } // Remove any duplictes IP addresses that might have gotten in there IPAddressComparer c = new IPAddressComparer(); to_ping.Sort((a, b) => c.Compare(a.Item1, b.Item1)); to_ping = to_ping.Distinct().ToList(); // Create some # of threads for concurrent pinging. The number of threads // will be around request.NumPingers. ManualResetEvent reset_event = new ManualResetEvent(false); int thread_count = 0; List <Thread> threads = new List <Thread>(); List <List <Tuple <IPAddress, string> > > chunks = to_ping.ChunkBy(to_ping.Count / request.NumPingers); foreach (List <Tuple <IPAddress, string> > addrs in chunks) { Thread t = new Thread( () => { Stopwatch watch = Stopwatch.StartNew(); List <Tuple <IPAddress, string> > local_addrs = addrs; foreach (Tuple <IPAddress, string> addr in local_addrs) { PingResult result = addr.Item1.PingIt(addr.Item2); lock (d.Data) d.Data.Add(result); } Trace.WriteLine(string.Format("Pinging {0} addrs took {1} ms", local_addrs.Count, watch.ElapsedMilliseconds)); if (Interlocked.Decrement(ref thread_count) <= 0) { reset_event.Set(); } }); threads.Add(t); } if (threads.Count > 0) { try { thread_count = threads.Count; threads.ForEach(t => t.Start()); reset_event.WaitOne(); } catch (Exception) { } finally { } Dictionary <string, string> ip_to_mac = GetIPAddrsAndMacAddresses(); foreach (PingResult pr in d.Data) { string ip = pr.Address.ToString(); if (ip_to_mac.TryGetValue(ip, out string mac)) { pr.MAC = mac; } } } d.Data.Sort((a, b) => c.Compare(a.Address, b.Address)); return(new CollectedData(Context, true, d)); }
public void Compare6() { IPAddressComparer comparer = new IPAddressComparer(); object x = "127.0.0.0"; object y = "128.0.0.0"; Assert.IsTrue(comparer.Compare(x, y) < 0); Assert.IsTrue(comparer.Compare(y, x) > 0); Assert.IsTrue(comparer.Compare(x, x) == 0); x = "1567890"; y = "1890329"; Assert.IsTrue(comparer.Compare(x, y) < 0); Assert.IsTrue(comparer.Compare(y, x) > 0); Assert.IsTrue(comparer.Compare(x, x) == 0); x = String.Empty; y = String.Empty; Assert.IsTrue(comparer.Compare(x, "127.0.0.0") == -1); Assert.IsTrue(comparer.Compare("127.0.0.0", y) == 1); Assert.IsTrue(comparer.Compare(x, y) == 0); }
public void Compare5() { IPAddressComparer comparer = IPAddressComparer.Default as IPAddressComparer; try { comparer.Compare("1067890", "abc123"); } catch (FormatException) { Assert.IsTrue(true); } catch (Exception e) { Assert.Fail(e.Message); } try { comparer.Compare("abc123", "1067890"); } catch (FormatException) { Assert.IsTrue(true); } catch (Exception e) { Assert.Fail(e.Message); } try { comparer.Compare("1067890", String.Empty); } catch (FormatException) { Assert.IsTrue(true); } catch (Exception e) { Assert.Fail(e.Message); } try { comparer.Compare(String.Empty, "1067890"); } catch (FormatException) { Assert.IsTrue(true); } catch (Exception e) { Assert.Fail(e.Message); } try { comparer.Compare("1067890", null); } catch (ArgumentNullException e) { if (e.ParamName == "y") { Assert.IsTrue(true); } else { Assert.Fail(e.Message); } } catch (Exception e) { Assert.Fail(e.Message); } try { comparer.Compare(null, "1067890"); } catch (ArgumentNullException e) { if (e.ParamName == "x") { Assert.IsTrue(true); } else { Assert.Fail(e.Message); } } catch (Exception e) { Assert.Fail(e.Message); } }