using System.Net.NetworkInformation; namespace IP_port_checker.SubnetScanner { public class IsHostAlive { private static bool HostAliveCheck(string ip) { try { using (Ping ping = new Ping()) { PingReply pingReply = ping.Send(ip, 1000); return pingReply.Status == IPStatus.Success; } } catch { return false; } } public static void ParralelScan(string network) { var tasks = new List(); int alive = 0; for (int i = 0; i < 254; i++) { string ip = $"{network}.{i}"; tasks.Add(Task.Run(() => { if (HostAliveCheck(ip)) { Console.WriteLine($"Хост {ip} - в сети"); alive++; } })); } Task.WaitAll(tasks.ToArray()); Console.WriteLine($"Устройств в сети: {alive}"); } } }