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