Example #1
0
        private static void WriteNetAddressFormat(VLSM.IPv4 ip, VLSM_Units vlsm_units)
        {
            Guides += $"{Environment.NewLine}";
            Guides += $@"       Subnet format:     ";


            List <int> listBits = ip.ToBinaryList();


            int startOctet = (32 - vlsm_units.BeforeHosts) / 8;
            int endOctet   = (32 - vlsm_units.AfterHosts - 1) / 8;

            int startIndex = (32 - vlsm_units.BeforeHosts);
            int endIndex   = (32 - vlsm_units.AfterHosts - 1);



            for (int i = 0; i < listBits.Count; ++i)
            {
                int currentOctetIndex = i / 8;


                if (currentOctetIndex >= startOctet && currentOctetIndex <= endOctet)
                {
                    if (i >= startIndex && i <= endIndex)
                    {
                        Guides += 'x';
                    }
                    else
                    {
                        Guides += $"{listBits[i]}";
                    }
                }
                else
                {
                    if ((i + 1) % 8 == 0)
                    {
                        Guides += $"{Octet.ToDecimal(listBits.GetRange(i - 7, 8))}";
                    }
                }


                if ((i + 1) % 8 == 0)
                {
                    if (i != 31)
                    {
                        Guides += '.';
                    }
                }
            }

            Guides += $"/{ip.Suffix + vlsm_units.BorrowedBitsAmount}";
        }
Example #2
0
        private static void WriteHostFormat(VLSM.IPv4 ip, VLSM_Units vlsm_units)
        {
            Guides += $"{Environment.NewLine}";
            Guides += $@"       Host format:     ";


            List <int> listBits       = ip.ToBinaryList();
            int        hostOctetIndex = (32 - vlsm_units.AfterHosts) / 8;


            for (int i = 0; i < 32; ++i)
            {
                if (i / 8 >= hostOctetIndex)
                {
                    if (i >= 32 - vlsm_units.AfterHosts)
                    {
                        Guides += 'x';
                    }
                    else
                    {
                        Guides += listBits[i];
                    }
                }
                else
                {
                    if (((i + 1) % 8) == 0)
                    {
                        Guides += Octet.ToDecimal(listBits.GetRange(i - 7, 8));
                    }
                }


                if (((i + 1) % 8) == 0)
                {
                    if (i != 31)
                    {
                        Guides += ".";
                    }
                }
            }


            Guides += $"/{ip.Suffix}";
        }