Files

44 lines
1.2 KiB
C#

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<Task>();
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}");
}
}
}