示例#1
0
        /// <summary>
        /// Calculates the results of the addresses
        /// </summary>
        public void GetResults()
        {
            // If Ip Address is correct
            if (Gen.IsAddressCorrect(IpAddress))
            {
                // Binary IP Address
                IpAddressBinary = Gen.IP_2_Binary(IpAddress);
                // Network Class
                NetworkClass = Gen.GetNetworkClass(IpAddressBinary);
            }

            // If Prefix is correct
            if (Gen.IsPrefixCorrect(Prefix))
            {
                // SM Binary and Decimal
                SMBinary = Gen.Prefix_2_SM(Convert.ToInt16(Prefix));
                SM       = Gen.BinAddress_2_Dec(SMBinary);

                // Number of Available Hosts
                HostsCount = Gen.GetAvailableHosts(Convert.ToInt32(Prefix)).ToString();

                // New Prefix
                NewPrefix = Gen.GetNewPrefix(SubNetworks, Convert.ToInt32(Prefix)).ToString();

                // Subhosts count
                SubHostsCount = Gen.GetAvailableHosts(Convert.ToInt32(NewPrefix)).ToString();
            }

            if (Gen.IsPrefixCorrect(Prefix) && Gen.IsAddressCorrect(IpAddress))
            {
                // Network Address Binary and Decimal
                NetworkAddressBinary = Gen.GetNetworkAddress(IpAddressBinary, SMBinary);
                NetworkAddress       = Gen.BinAddress_2_Dec(NetworkAddressBinary);

                // Broadcast Address Binary and Decimal
                BroadcastAddressBinary = Gen.GetBroadcastNumber(IpAddressBinary, SMBinary);
                BroadcastAddress       = Gen.BinAddress_2_Dec(BroadcastAddressBinary);

                HostsRange = Gen.GetHostsRange(NetworkAddress, BroadcastAddress);

                // Add Prefix to the addresss
                BroadcastAddress = AddPrefix(BroadcastAddress, NewPrefix);
                NetworkAddress   = AddPrefix(NetworkAddress, NewPrefix);
            }

            if (Prefix == "32")
            {
                Warning = "Network doesn't exist!";
            }
            else if (Prefix == "31")
            {
                Warning = "Network has no hosts available!";
            }
            else if (NetworkClass == "D" || NetworkClass == "E")
            {
                Warning = "Restricted Address!";
            }
            // TODO: Warning about 2many subnetworks
            else
            {
                Warning = "";
            }
        }