Esempio n. 1
0
 /// <summary>
 /// будет добавлен только валидный хост
 /// </summary>
 /// <param name="line"></param>
 /// <returns></returns>
 static bool tryAddHost(string line)
 {
     if (IPProcessing.AddrsCount() < maxHosts)
     {
         if (IPProcessing.AddHost(line))
         {
             printHosts();
             return(true);
         }
     }
     return(false);
 }
Esempio n. 2
0
        /// <summary>
        /// вывод на консоль списка IPProcessing
        /// </summary>
        static void printHosts()
        {
            lock (locker)
            {
                int count = 1;

                foreach (string s in IPProcessing.HostsEnumerator())
                {
                    Console.SetCursorPosition(1, count + 9);
                    ClearCurrentConsoleLine(count + 9);
                    Console.WriteLine(string.Format("{0,2}. ", count.ToString("D2")) + IPProcessing.GetIPbyHost(s));
                    count++;
                }
            }
        }
Esempio n. 3
0
        static void Main(string[] args)
        {
            Log.Info("");
            Log.Info("Запуск TestTraceroute");

            IPProcessing ipProc = new IPProcessing();

            Console.WriteLine("");
            Console.WriteLine("Имя хоста <ENTER> - добавить; c - проверить; q - выход; esc - сброс строки;");
            Console.WriteLine("");
            Console.WriteLine("команда:");
            Console.WriteLine("");
            Console.WriteLine("");
            Console.WriteLine("Читаем хосты из traceroute-hosts.txt...");
            Console.WriteLine("Максимальное количество хостов - " + maxHosts);
            Console.WriteLine("Подробрости трассировки в файле Traceroute.log");

            // есть рядом с exe-файлов есть файл hosts.txt URL для обработки
            // будут взяты из него (макс. 10 записей)
            if (File.Exists(inputFile))
            {
                using (StreamReader sr = new StreamReader(inputFile))
                {
                    String line;
                    while ((line = sr.ReadLine()) != null)
                    {
                        tryAddHost(line);
                    }
                }
            }

            Console.SetCursorPosition(0, y_pos_comm);

            StringBuilder sd = new StringBuilder();

            // чтенин ввода пользователя
            while (true)
            {
                /// убрать сообщенние об ошибке
                if (hasError)
                {
                    Console.ForegroundColor = ConsoleColor.White;
                    ClearCurrentConsoleLine();
                    hasError = false;
                }

                ConsoleKeyInfo cki = Console.ReadKey(true);

                if (cki.Key == ConsoleKey.Escape)
                {
                    sd.Clear();
                    ClearCurrentConsoleLine();
                }
                else if (cki.Key == ConsoleKey.Enter)
                {
                    ClearCurrentConsoleLine();
                    if (sd.Length > 4)
                    {
                        if (!tryAddHost(sd.ToString()))
                        {
                            Console.ForegroundColor = ConsoleColor.Red;
                            Console.Write("! ХОСТ НЕ ДОБАВЛЕН ! ");
                            hasError = true;
                        }
                    }

                    if (sd.ToString() == "q")
                    {
                        Environment.Exit(0);
                    }

                    if (sd.ToString() == "c")
                    {
                        ipProc.GoCheck(printHosts);
                    }

                    sd.Clear();
                }
                else
                {
                    sd.Append(cki.KeyChar);
                    Console.SetCursorPosition(0, y_pos_comm);
                    Console.Write(sd.ToString());
                }
            }
        }