//       [InlineData("10.1.10.5", StringSubnetClassA, 16_777_216)]
        public void IPAddressRange_IPAddressSubnet_Count(string ipAddressLowerInclusiveString,
                                                         string ipAddressSubnetString, int total)
        {
            var ipAddressLowerInclusive  = IPAddress.Parse(ipAddressLowerInclusiveString);
            var ipAddressSubnetInclusive = IPAddress.Parse(ipAddressSubnetString);

            var ipAddressSubnet = new IPAddressSubnet(ipAddressLowerInclusive, ipAddressSubnetInclusive);

            var ipAddressRange = new IPAddressRange(ipAddressSubnet);

            int       count         = 0;
            IPAddress ipAddressPrev = IPAddress.None;

            foreach (var ipAddress in ipAddressRange)
            {
                if (count++ == 0)
                {
                    Assert.Equal(ipAddressSubnet.NetworkAddress, ipAddress);
                }
                else
                {
                    Assert.Equal(ipAddress.Decrement(), ipAddressPrev);
                }

                ipAddressPrev = ipAddress;
            }

            Assert.Equal(total, count);
            Assert.Equal(ipAddressSubnet.BroadcastAddress, ipAddressPrev);
        }
Exemple #2
0
        /// <summary>
        /// Pings the network asynchronous.
        /// </summary>
        /// <param name="ipAddressSubnet">The ip address subnet.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <param name="timeout">The timeout.</param>
        /// <param name="pingCallLimit">The ping call limit.</param>
        /// <param name="waitBetweenPings">delay in milliseconds between pings</param>
        /// <param name="shuffle">if set to <c>true</c> [shuffle].</param>
        /// <returns>Task.</returns>
        /// <autogeneratedoc />
        public Task PingNetworkAsync(IPAddressSubnet ipAddressSubnet, CancellationToken cancellationToken, int timeout,
                                     int pingCallLimit, int waitBetweenPings, bool shuffle)
        {
            var iPAddressSubnet = CommonServices.NetworkingSystem.GetDefaultGatewayAddressSubnet();

            return(_pingTask.PingNetworkAsync(iPAddressSubnet, cancellationToken, timeout, pingCallLimit, waitBetweenPings, shuffle));
        }
Exemple #3
0
        public void IPAddressSubnet_BroadcastAddress(IPAddress ipAddressBroadcast, IPAddress subnetAddress, IPAddress ipAddressExpected)
        {
            var ipAddressSubnet = new IPAddressSubnet(ipAddressBroadcast, subnetAddress);

            ipAddressSubnet.Should().NotBeNull();
            ipAddressSubnet.BroadcastAddress.Should().Be(ipAddressExpected);
        }
Exemple #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="NetworkGateway"/> class.
 /// </summary>
 /// <param name="commonNetworkServices">The common network services.</param>
 /// <param name="ipAddressSubnetGateway">The ip address subnet gateway.</param>
 /// <exception cref="ArgumentNullException">ipAddressSubnetGateway</exception>
 /// <autogeneratedoc />
 public NetworkGateway(ICommonNetworkServices commonNetworkServices, IPAddressSubnet ipAddressSubnetGateway) :
     base(commonNetworkServices, DeviceType.NetworkGateway,
          commonNetworkServices?.LoggerFactory.CreatePureLogger <NetworkGateway>())
 {
     _ipAddressSubnet = ipAddressSubnetGateway ??
                        throw new ArgumentNullException(nameof(ipAddressSubnetGateway));
 }
Exemple #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PingJob"/> struct.
 /// </summary>
 /// <param name="jobGuid">The job unique identifier.</param>
 /// <param name="taskId">The task identifier.</param>
 /// <param name="iPAddressSubnet">The i p address subnet.</param>
 /// <param name="timestamp">The timestamp.</param>
 /// <autogeneratedoc />
 public PingJob(Guid jobGuid, int taskId, IPAddressSubnet iPAddressSubnet, DateTimeOffset timestamp)
 {
     JobGuid         = jobGuid;
     TaskId          = taskId;
     IPAddressSubnet = iPAddressSubnet;
     Timestamp       = timestamp;
 }
Exemple #6
0
        public void IPAddressSubnet_NetworkAddress(IPAddress ipAddressNetwork, IPAddress subnetAddress, IPAddress ipAddressExpected)
        {
            var ipAddressSubnet = new IPAddressSubnet(ipAddressNetwork, subnetAddress);

            ipAddressSubnet.Should().NotBeNull();
            ipAddressSubnet.NetworkAddress.Should().Be(ipAddressExpected);
        }
Exemple #7
0
        public void IPAddressSubnet_CompareTo_Equal_DifferentSubnet()
        {
            var ipAddressSubnet1 = new IPAddressSubnet(TestAddressClassA, IPAddressExtensions.SubnetClassA);
            var ipAddressSubnet2 = new IPAddressSubnet(TestAddressClassA, IPAddressExtensions.SubnetClassC);

            // Subnet is ignored
            ipAddressSubnet1.CompareTo(ipAddressSubnet2).Should().Be(0);
        }
Exemple #8
0
        public void IPAddressSubnet_IsAddressOnSameSubnet_False()
        {
            var ipAddressSubnet1 = new IPAddressSubnet(TestAddressClassA, IPAddressExtensions.SubnetClassA);
            var ipAddressSubnet2 = new IPAddressSubnet(TestAddressClassC, IPAddressExtensions.SubnetClassC);

            // Subnet is ignored
            ipAddressSubnet1.IsAddressOnSameSubnet(ipAddressSubnet2.IPAddress).Should().BeFalse();
        }
Exemple #9
0
        public async Task PingService_PingNetworkEvent_Shuffle()
        {
            var cancellationTokenSource = new CancellationTokenSource();

            var ipAddressSubnet = new IPAddressSubnet(_networkingSystem.GetDefaultLocalNetworkAddress(),
                                                      IPAddressExtensions.SubnetClassC);

            var pingServiceTask = _pingService.PingNetworkAsync(ipAddressSubnet, cancellationTokenSource.Token, DefaultNetworkTimeout, DefaultPingCalls, 1, true);

            cancellationTokenSource.CancelAfter(2000);

            await pingServiceTask;
        }
Exemple #10
0
        /// <summary>
        /// Gets the default local address subnet.
        /// </summary>
        /// <returns>IPAddressSubnet.</returns>
        /// <autogeneratedoc />
        public IPAddressSubnet GetDefaultLocalAddressSubnet()
        {
            var ipAddressSubnet = new IPAddressSubnet(IPAddress.None, IPAddress.None);

            try
            {
                foreach (var networkInterface in GetAllNetworkInterfaces())
                {
                    ipAddressSubnet = IPv4AddressSubnetFromNetworkInterface(networkInterface);

                    // break if we  find an IPv4 Interface
                    if (!ipAddressSubnet.Equals(IPAddressSubnet.None))
                    {
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                _logger?.LogError(ex, "GetDefaultLocalAddressSubnet failed");
            }

            return(ipAddressSubnet);
        }
Exemple #11
0
 /// <summary>
 /// Nexts the task.
 /// </summary>
 /// <param name="ipAddress">The ip address.</param>
 /// <returns>System.Int32.</returns>
 /// <autogeneratedoc />
 public int NextTask(IPAddress ipAddress)
 {
     IPAddressSubnet = new IPAddressSubnet(ipAddress, IPAddressSubnet.SubnetMask);
     return(++TaskId);
 }
Exemple #12
0
 /// <summary>
 /// Initializes a new instance of the <see cref="IPAddressRange"/> class.
 /// </summary>
 /// <param name="ipAddressSubnet">The ip address subnet.</param>
 /// <autogeneratedoc />
 public IPAddressRange(IPAddressSubnet ipAddressSubnet)
 {
     IpAddressLowerInclusive = ipAddressSubnet.NetworkAddress;
     IpAddressUpperInclusive = ipAddressSubnet.BroadcastAddress;
 }
Exemple #13
0
        public void IPAddressSubnet_CompareTo_Equal()
        {
            var ipAddressSubnet = new IPAddressSubnet(TestAddressClassC, IPAddressExtensions.SubnetClassC);

            ipAddressSubnet.CompareTo(ipAddressSubnet).Should().Be(0);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="NetworkEnumerator"/> class.
 /// </summary>
 /// <param name="ipAddressSubnet">The ip address subnet.</param>
 /// <autogeneratedoc />
 public NetworkEnumerator(IPAddressSubnet ipAddressSubnet)
 {
     IPAddressRange = new IPAddressRange(ipAddressSubnet);
 }
Exemple #15
0
        public void IPAddressSubnet_CompareTo_Equals_Object()
        {
            var ipAddressSubnet = new IPAddressSubnet(TestAddressClassC, IPAddressExtensions.SubnetClassC);

            ipAddressSubnet.Equals((object)ipAddressSubnet).Should().BeTrue();
        }
Exemple #16
0
        public async Task PingService_PingNetworkEvent_WithLogging()
        {
            var ipAddressSubnet = new IPAddressSubnet(_networkingSystem.GetDefaultLocalNetworkAddress(), IPAddressExtensions.SubnetClassC);

            await _pingService.PingNetworkAsync(ipAddressSubnet, CancellationToken.None, DefaultNetworkTimeout, DefaultPingCalls, 0, false);
        }
Exemple #17
0
        public void IPAddressSubnet_Constructor()
        {
            var ipAddressSubnet = new IPAddressSubnet(TestAddressClassA);

            ipAddressSubnet.Should().NotBeNull();
        }