/// <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 = ""; } }