Esempio n. 1
0
        public HostUri CreateRandom_HostUri(DiapasonChoiserData diapason)
        {
            IPAddress ip     = IPAddressOperations.CreateRandomIP(Random, diapason.IP_From, diapason.IP_To);
            string    host   = ip.ToString();
            HostUri   result = new HostUri()
            {
                Host = host,
                Uri  = CreateUri(diapason.Scheme, host, diapason.Port, diapason.Path, diapason.AddressFamily)
            };

            return(result);
        }
Esempio n. 2
0
        public BindingList <HostUri> CreateList_HostUri(DiapasonChoiserData diapason)
        {
            BindingList <HostUri> result = new BindingList <HostUri>();

            IPAddress[] ips = IPAddressOperations.CreateDiapasonIP(diapason.IP_From, diapason.IP_To);
            foreach (IPAddress ip in ips)
            {
                string host = ip.ToString();
                result.Add(new HostUri()
                {
                    Host = host,
                    Uri  = CreateUri(diapason.Scheme, host, diapason.Port, diapason.Path, diapason.AddressFamily)
                });
            }
            return(result);
        }
        private DiapasonChoiserData CreateDiapasonChoiserData()
        {
            DiapasonChoiserData result = new DiapasonChoiserData();

            try
            { result.IP_From = IPAddress.Parse(textBox_IPFrom.Text); }
            catch (Exception e)
            { throw new Exception("Не удалось распознать IP Min"); }

            try
            { result.IP_To = IPAddress.Parse(textBox_IPTo.Text); }
            catch (Exception e)
            { throw new Exception("Не удалось распознать IP Max"); }

            if (result.IP_From.AddressFamily != result.IP_To.AddressFamily)
            {
                throw new Exception("Версии IP должны быть одинаковыми");
            }

            if (new BigInteger(result.IP_From.GetAddressBytes().Reverse().ToArray()) >
                new BigInteger(result.IP_To.GetAddressBytes().Reverse().ToArray())
                )
            {
                throw new Exception("Значение Min IP должено быть не больше Max IP");
            }

            try
            {
                if (textBox_Port.Text == "")
                {
                    result.Port = null;
                }
                else
                {
                    result.Port = Convert.ToUInt16(textBox_Port.Text);
                }
            }
            catch (Exception e)
            { throw new Exception("Значение порта должно быть от 0 до 65535. \r\n Или отсутствовать."); }

            result.AddressFamily = result.IP_From.AddressFamily;
            result.Scheme        = textBox_Protocol.Text;
            result.Path          = textBox_Path.Text;


            return(result);
        }