Добавить PortScanner/TCPChecker.cs

Я восхищаюсь Kolo. Вот с таких людей надо брать пример
This commit is contained in:
2026-06-10 23:21:42 +03:00
parent 56fd91fc2e
commit b7845f1c06
+46
View File
@@ -0,0 +1,46 @@
using System.Net;
using System.Net.Sockets;
namespace IP_port_checker.PortScanner
{
public class TCPChecker
{
private static async Task<bool> IsPortOpen(IPAddress ip, int port)
{
try
{
using var tcp = new TcpClient();
var task = tcp.ConnectAsync(ip, port);
var timeout = Task.Delay(500);
if (await Task.WhenAny(task, timeout) == task)
{
return true;
}
return false;
}
catch
{
return false;
}
}
public static async Task ScanPort(IPAddress ip, int stport, int endport)
{
var tasks = new List<Task<bool>>();
for (int port = stport; port <= endport; port++)
{
tasks.Add(IsPortOpen(ip, port));
}
bool[] res = await Task.WhenAll(tasks);
for (int i = 0; i < res.Length; i++)
if (res[i])
Console.WriteLine($"[{DateTime.Now:HH:mm.ss.ffff}] Порт {stport + i} открыт");
Console.WriteLine();
}
}
}
//127.0.0.1