Chimney.MPD.ChimneyMPDServer.GetIpList C# (CSharp) Метод

GetIpList() приватный Метод

private GetIpList ( HostName>.Tuple seip ) : List
seip HostName>.Tuple
Результат List
        private List<HostName> GetIpList(Tuple<HostName, HostName> seip)
        {
            List<HostName> ipa = new List<HostName>();

            string[] startIPString;

            byte[] startIPBytes =
                new byte[4];
            try
            {
                startIPString = seip.Item1.DisplayName.Split(".".ToCharArray());

                startIPBytes[0] = Convert.ToByte(startIPString[0]);
                startIPBytes[1] = Convert.ToByte(startIPString[1]);
                startIPBytes[2] = Convert.ToByte(startIPString[2]);
                startIPBytes[3] = Convert.ToByte(startIPString[3]);
            }
            catch
            {
                return ipa;
            }

            string[] endIPString;

            byte[] endIPBytes =
                new byte[4];

            try
            {
                endIPString = seip.Item2.DisplayName.Split(".".ToCharArray());

                endIPBytes[0] = Convert.ToByte(endIPString[0]);
                endIPBytes[1] = Convert.ToByte(endIPString[1]);
                endIPBytes[2] = Convert.ToByte(endIPString[2]);
                endIPBytes[3] = Convert.ToByte(endIPString[3]);
            }
            catch
            {
                return ipa;
            }

            if (startIPBytes.Length == 4 && endIPBytes.Length == 4)
            {
                int s0 = startIPBytes[0];
                while (s0 <= endIPBytes[0])
                {
                    int s1 = startIPBytes[1];
                    while (s1 <= endIPBytes[1])
                    {
                        int s2 = startIPBytes[2];
                        while (s2 <= endIPBytes[2])
                        {
                            int s3 = startIPBytes[3] + 1;
                            while (s3 < endIPBytes[3])
                            {
                                ipa.Add(new HostName(s0 + "." + s1 + "." + s2 + "." + s3));
                                s3++;
                            }
                            s2++;
                        }
                        s1++;
                    }
                    s0++;
                }
            }

            return ipa;
        }
    }