public static void Main()
Console.WriteLine("Enter first octet: ");
int octOne = int.Parse(Console.ReadLine());
Console.WriteLine("Enter second octet: ");
int octTwo = int.Parse(Console.ReadLine());
Console.WriteLine("Enter third octet: ");
int octThree = int.Parse(Console.ReadLine());
Console.WriteLine("Enter fourth octet: ");
int octFour = int.Parse(Console.ReadLine());
IpCalc.TestValidity(octOne, octTwo, octThree, octFour);
public static class IpCalc
public static bool DetermineIfLoopBack(int octOne)
public static string DetermineClass(int octOne)
public static bool DetermineIfOutOfRange(int octOne, int octTwo, int octThree, int octFour)
if ((octOne > 255) | (octTwo > 255) | (octThree > 255) | (octFour > 255))
public static bool DetermineIfNetworkID(int octTwo, int octThree, int octFour, string userClass)
bool isNetworkID = false;
if ((octTwo <= 0) & (octThree <= 0) & (octFour <= 0))
else if (userClass == "B")
if ((octThree <= 0) & (octFour <= 0))
else if (userClass == "C")
public static bool DetermineIfBraodcastID(int octTwo, int octThree, int octFour, string userClass)
bool isBroadcastID = false;
if ((octTwo >= 255) & (octThree >= 255) & (octFour >= 255))
else if (userClass == "B")
if ((octThree >= 255) & (octFour >= 255))
else if (userClass == "C")
public static bool TestValidity(int octOne, int octTwo, int octThree, int octFour)
bool isLoopBack = DetermineIfLoopBack(octOne);
string userClass = DetermineClass(octOne);
bool isNetworkID = DetermineIfNetworkID(octTwo, octThree, octFour, userClass);
bool isBroadcastID = DetermineIfBraodcastID(octTwo, octThree, octFour, userClass);
bool isInRange = DetermineIfOutOfRange(octOne, octTwo, octThree, octFour);
Console.WriteLine("Invalid — Loopback Address");
else if (isInRange == true)
Console.WriteLine("Invalid — Out of Range");
else if (isNetworkID == true)
Console.WriteLine("Invalid — Network ID");
else if (isBroadcastID == true)
Console.WriteLine("Invalid — Broadcast ID");
Console.WriteLine("Valid");