private void Initiate() { var byteMask = new List <byte>(); var byteIP = new List <byte>(); var byteStart = new List <byte>(); foreach (var item in SubnetMask.Split('.')) { byteMask.Add(Byte.Parse(item)); } foreach (var item in IPv4.Split('.')) { byteIP.Add(Byte.Parse(item)); } for (int i = 0; i < byteIP.Count; i++) { byteStart.Add((byte)(byteIP[i] & byteMask[i])); } foreach (var item in byteStart) { StartPosIP += item.ToString() + "."; } StartPosIP = StartPosIP.Remove(StartPosIP.Length - 1); string temp = ""; foreach (var item in byteMask) { temp += Convert.ToString(item, 2).PadLeft(8, '0'); } temp = temp.Replace('1', ' ').Trim(); Amount = (int)Math.Pow(2, (double)(temp.Length)) - 2; }