Привет, сетевой друг! Сегодня про инструмент Forerunner - библиотеку для разрабов, которая делает из сетевого сканирования готовый набор компонентов для .NET. И это не готовый сканер с интерфейсом, а движок, на базе которого можно собирать свои сетевые утилиты.🟣Зачем он: когда нужно написать свой IP-сканер, мониторинг доступности или проверку портов, обычно приходится самостоятельно реализовывать потоки, таймауты, обработку ошибок и сбор результатов. Forerunner берёт эту рутину на себя и отдаёт всё в виде готовых объектов.
🟣Как работает: библиотека построена вокруг асинхронного событийного подхода. Вы создаёте Scanner, запускаете проверку IP или диапазона адресов, а результаты приходят через события с прогрессом и итоговыми объектами.
Например, можно просканировать сеть:
Scanner scanner = new Scanner();
IPScanObject result = scanner.Scan("192.168.1.1");
В результате объект содержит:
• IP-адрес
• статус доступности
• время ответа Ping
• hostname
• MAC-адрес
• ошибки при проверке
🟣Что умеет:
IP Scan - проверка одного адреса или диапазона
ScanRange("192.168.1.1", "192.168.1.255")Port Scan - поиск доступных TCP/UDP портов
IsPortOpen("192.168.1.1", 443)Ping Monitoring - проверка доступности и средней задержки
GetAveragePingResponse("192.168.1.1", 5, 1000)Port Knock - массовая проверка портов на хостах
🟣Главная фишка, что всё работает параллельно. Библиотека рассчитана на многопоточность, поэтому можно одновременно проверять сотни адресов без блокировки основного приложения. Например, свой мониторинг можно построить так:
серверы → Forerunner → проверка Ping → проверка портов → отправка результата в панель мониторинга
🟣Пример асинхронного сканирования:
scanner.ScanAsync("10.0.0.1");
scanner.ScanAsyncComplete += (sender, result) =>
{
Console.WriteLine(result.IP);
};Программа не зависает в ожидании ответа, а получает события по мере завершения проверок.
Серверная Админа | Zeroday | #Инструмент
