Exemplo n.º 1
0
 /// <summary>
 /// Initialize network range.
 /// </summary>
 /// <param name="networkAddr">Network address.</param>
 /// <param name="broadcastAddr">Broadcast address.</param>
 /// <param name="prefix">Prefix number is less than 32.</param>
 /// <param name="subnetBit">Borrowed bits.</param>
 /// <param name="ipClass">Class of IPv4 address.</param>
 public NetworkRange(IPv4Address networkAddr, IPv4Address broadcastAddr, int prefix, int subnetBit, IPv4Class ipClass)
 {
     NetworkIDAddress = networkAddr;
     Prefix = prefix;
     SubnetBit = subnetBit;
     Class = ipClass;
 }
Exemplo n.º 2
0
        public static string ToSubnetBitmap(string binary, int prefix, int subnetBit, IPv4Class ipClass)
        {
            StringBuilder subnetBitmap = new StringBuilder(binary);

            for (int i = 31; i > 0; i--)
            {
                if (i > prefix + subnetBit - 1)
                    subnetBitmap[i] = 'H';
                else if (i > prefix - 1)
                    subnetBitmap[i] = 'S';
                else if (i > 2
                    || (i == 2 && ipClass < IPv4Class.C)
                    || (i == 1 && ipClass < IPv4Class.B))
                    subnetBitmap[i] = 'N';
            }

            return AddDotSeparator(subnetBitmap.ToString());
        }
Exemplo n.º 3
0
 /// <summary>
 /// Initialize subnet mask with IPv4 class.
 /// </summary>
 /// <param name="ipClass">IPv4 class.</param>
 public SubnetMask(IPv4Class ipClass = IPv4Class.A)
 {
     switch (ipClass)
     {
         case IPv4Class.A:
             Prefix = 8;
             break;
         case IPv4Class.B:
             Prefix = 16;
             break;
         case IPv4Class.C:
             Prefix = 24;
             break;
         default:
             Prefix = 32;
             break;
     }
 }
Exemplo n.º 4
0
 private static string ToFirstOctetRange(IPv4Class ipClass)
 {
     switch (ipClass)
     {
         case IPv4Class.A:
             return "1 - 127";
         case IPv4Class.B:
             return "128 - 191";
         case IPv4Class.C:
             return "192 - 223";
         case IPv4Class.D:
             return "224 - 239";
         case IPv4Class.E:
             return "240 - 255";
         default:
             return null;
     }
 }
Exemplo n.º 5
0
 private static string ToClass(IPv4Class ipClass)
 {
     switch (ipClass)
     {
         case IPv4Class.A:
             return "A";
         case IPv4Class.B:
             return "B";
         case IPv4Class.C:
             return "C";
         case IPv4Class.D:
             return "D";
         case IPv4Class.E:
             return "E";
         default:
             return null;
     }
 }
Exemplo n.º 6
0
 /// <summary>
 /// Convert IPv4Class to default prefix number.
 /// </summary>
 /// <param name="ipClass">IPv4 class.</param>
 /// <returns></returns>
 public static int ToPrefix(IPv4Class ipClass)
 {
     switch (ipClass)
     {
         case IPv4Class.A:
             return 8;
         case IPv4Class.B:
             return 16;
         case IPv4Class.C:
             return 24;
         case IPv4Class.D:
             return 32;
         case IPv4Class.E:
             return 32;
         default:
             return 0;
     }
 }
Exemplo n.º 7
0
 /// <summary>
 /// Initialize IPv4 address
 /// </summary>
 /// <param name="addr">A string of IPv4 address. It looks like 192.168.0.0.</param>
 /// <param name="prefix">An integer number less than 32.</param>
 /// <param name="ipClass">Class of IPv4 address.</param>
 public IPv4Address(string addr, int prefix, IPv4Class ipClass)
     : base(addr)
 {
     _mask = new NetworkMask(prefix);
     _class = ipClass;
 }
Exemplo n.º 8
0
 /// <summary>
 /// Initialize IPv4 address
 /// </summary>
 /// <param name="addr">A string of IPv4 address. It looks like 192.168.0.0.</param>
 /// <param name="prefix">An integer number less than 32.</param>
 public IPv4Address(string addr, int prefix)
     : base(addr)
 {
     _mask = new NetworkMask(prefix);
     _class = ToNetworkClass(_octet);
 }
Exemplo n.º 9
0
 /// <summary>
 /// Initialize IPv4 address
 /// </summary>
 /// <param name="addr">A string of IPv4 address. It looks like 192.168.0.0.</param>
 /// <param name="subnetMask">A string of subnet mask of IPv4 address. It looks like 255.255.255.0.</param>
 /// <param name="ipClass">Class of IPv4 address.</param>
 public IPv4Address(string addr, string subnetMask, IPv4Class ipClass)
     : base(addr)
 {
     _mask = new NetworkMask(subnetMask);
     _class = ipClass;
 }
Exemplo n.º 10
0
 /// <summary>
 /// Initialize IPv4 address
 /// </summary>
 /// <param name="addr">A string of IPv4 address. It looks like 192.168.0.0.</param>
 /// <param name="subnetMask">A string of subnet mask of IPv4 address. It looks like 255.255.255.0.</param>
 public IPv4Address(string addr, string subnetMask)
     : base(addr)
 {
     _mask = new NetworkMask(subnetMask);
     _class = ToNetworkClass(_octet);
 }
Exemplo n.º 11
0
        /// <summary>
        /// Sets address with decimal value of octets.
        /// </summary>
        /// <param name="octet1">The first octet.</param>
        /// <param name="octet2">The second octet.</param>
        /// <param name="octet3">The third octet.</param>
        /// <param name="octet4">The fourth octet.</param>
        public override void SetAddress(int octet1, int octet2, int octet3, int octet4)
        {
            base.SetAddress(octet1, octet2, octet3, octet4);

            _mask = new NetworkMask(_octet);
            _class = ToNetworkClass(_octet);
        }
Exemplo n.º 12
0
 /// <summary>
 /// Initialize IPv4 address with IPv4 class.
 /// </summary>
 /// <param name="ipClass">Class of IPv4 address.</param>
 public IPv4Address(IPv4Class ipClass)
 {
     _class = ipClass;
     switch (_class)
     {
         case IPv4Class.A:
             Octet = ToOctet(1, 0, 0, 0);
             _mask = new NetworkMask(8);
             break;
         case IPv4Class.B:
             Octet = ToOctet(128, 0, 0, 0);
             _mask = new NetworkMask(16);
             break;
         case IPv4Class.C:
             Octet = ToOctet(192, 0, 0, 0);
             _mask = new NetworkMask(24);
             break;
         case IPv4Class.D:
             Octet = ToOctet(224, 0, 0, 0);
             _mask = new NetworkMask(32);
             break;
         case IPv4Class.E:
             Octet = ToOctet(240, 0, 0, 0);
             _mask = new NetworkMask(32);
             break;
         default:
             break;
     }
 }
Exemplo n.º 13
0
 /// <summary>
 /// Initialize IPv4 address
 /// </summary>
 /// <param name="addr">An array of octet of IPv4 address.</param>
 /// <param name="subnetMask">Subnet mask of IPv4 address.</param>
 /// <param name="ipClass">Class of IPv4 address.</param>
 public IPv4Address(Octet[] addr, SubnetMask subnetMask, IPv4Class ipClass)
 {
     Octet = addr;
     _mask = new NetworkMask(subnetMask);
     _class = ipClass;
 }
Exemplo n.º 14
0
 /// <summary>
 /// Initialize IPv4 address
 /// </summary>
 /// <param name="octet1">The first octet.</param>
 /// <param name="octet2">The second octet.</param>
 /// <param name="octet3">The third octet.</param>
 /// <param name="octet4">The fourth octet.</param>
 public IPv4Address(int octet1, int octet2, int octet3, int octet4)
     : base(octet1, octet2, octet3, octet4)
 {
     _mask = new NetworkMask(_octet);
     _class = ToNetworkClass(_octet);
 }