Мониторинг доступности хостов в локальной сети через Ping (с цветовой индикацией)

Board index Программирование .NET

Description: Программирование с использованием платформы Microsoft.NET

#1by mexan » 09.08.2025, 22:55

Пингует список адресов и выводит результат цветом:
🟢 зелёный — хост отвечает,
🔴 красный — хост недоступен.

Code: Select all
using System;
using System.Net.NetworkInformation;
using System.Threading;

class Program
{
    static void Main()
    {
        // Список хостов для мониторинга
        string[] hosts = {
            "192.168.0.1", // роутер
            "192.168.0.10", // сервер
            "google.com"    // внешний тест
        };

        Console.WriteLine("Мониторинг хостов (Ping)...");
        Console.WriteLine("Нажмите Ctrl+C для выхода.\n");

        while (true)
        {
            foreach (string host in hosts)
            {
                Ping ping = new Ping();
                try
                {
                    PingReply reply = ping.Send(host, 1000); // таймаут 1 сек

                    if (reply.Status == IPStatus.Success)
                    {
                        Console.ForegroundColor = ConsoleColor.Green;
                        Console.WriteLine($"{host,-20} OK ({reply.RoundtripTime} ms)");
                    }
                    else
                    {
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine($"{host,-20} Нет ответа");
                    }
                }
                catch
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine($"{host,-20} Ошибка");
                }
                finally
                {
                    Console.ResetColor();
                }
            }

            Console.WriteLine(new string('-', 40));
            Thread.Sleep(3000); // задержка между проверками
        }
    }
}
Image
mexan
Администратор
Reputation: 0
Posts: 167
Topics: 129

Return to .NET

cron