Skip to content

nekix/Altx.PortScanner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Altx.PortScanner

Частично реализованное веб-приложение для сканирование портов указанного хоста. Приложение состоит из основных двух независимых частей:

  1. NMap wrapper (Altx.PortScanner.Nmap и Altx.PortScanner.Nmap.XmlSchemeModels);
  2. Клиент-серверное приложение.

Nmap wrapper

Данные проекты были попыткой сделать типизированную обертку над nmap-ом. Основным классом является NmapEngine, реализующий сканирование. Предполагалось внедрять его в основном клиент-серверном приложении через Dependency injection и использовать ну уровне Application. В классах папки Inputs проводится валидация значений входных параметров до передачи в nmap. По тексту кода в комментариях оставлены пометки TODO, в некоторых из которых я описываю как можно улучшить тот или иной момент реализации.

Клиент-сервер

Данное приложение состоит из следующих проектов:

  • Altx.PortScanner.Domain - реализация правил доменной области, валидация данных и операций.
  • Altx.PortScanner.Domain.Shared - Константы, локализация, коды ошибок и т.д.
  • Altx.PortScanner.EntityFrameworkCore - Слой доступа к БД. Помимо прочего, реализует репозиторий.
  • Altx.PortScanner.Application.Contracts - Уровень приложения и его контракты, конкретные use-cases.
  • Altx.PortScanner.Application - Реализация контрактов уровня приложения. В данном проекте предполагалось реализовать сервис, который бы использовал Nmap wrapper и проводил проверку портов. Также предполагалось через отдельную фоновую службу реализовать периодическую проверку и запуск в работу новых задач на сканирование портов.
  • Altx.PortScanner.Web - Сбор всех зависимостей, регистрация служб, пользовательский интерфейс. Не успел реализовать. Для работы необходимо заполнить в appsettings.json connection string для базы данных.
  • Altx.PortScanner.DbMigrator - Специальное консольное приложение, которое при запуске проводит инициализацию базы данных. Необходимо заполнить в appsettings.json connection string для базы данных.

Приложение реализовано так, что изменение реализации инструмента сканирования (напр. изменения в Nmap wrapper или вообще смена инструмента сканирования на другой) окажет контролируемое влияние только на application layer. Также были разделены доменная модель и модель представления, что также позволяет контролировать изменения в них на их стыке (в application).

Как упоминалось выше, предполагалось в Application layer использовать Nmap wrapper для реализации задачи сканирования. Запуск этой службы можно было бы реализовать разными способами, я склоняюсь к периодическому запуску задачи в BackgroundWorker в Altx.PortScanner.Web или к использованию Quartz.NET.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages