Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
avs1 - пз.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
3.23 Mб
Скачать

Руководство программиста

Интерфейсная часть

Использующиеся пространства имен:

  • System - содержит фундаментальные и базовые классы.

  • System.Windows.Forms - содержит классы для создания приложений Windows, которые позволяют наиболее эффективно использовать расширенные возможности пользовательского интерфейса.

  • System.Net - содержит классы, обеспечивающие простой интерфейс программирования для различных сетевых протоколов.

  • System.Threading - содержит классы и интерфейсы, которые дают возможность программировать в многопоточном режиме.

Компоненты пользовательского интерфейса

Объект

Комментарий

Тип

nud1, nud2, nud3, nud4

Регуляторы для ввода начального IP-адреса диапазона

NumericUpDown – регулятор, отображающий числовые значения

nud5, nud6, nud7, nud8

Регуляторы для ввода последнего IP-адреса диапазона

btn_scan

Кнопка начала сканирования

Button - кнопка

btn_exit

Кнопка выхода из приложения

btn_analyze

Кнопка анализа подсети

txt_network

Текстовое поле для адреса сети

TextBox – текстовое поле

txt_mask

Текстовое поле для маски сети

txt_broadcast

Текстовое поле для широковещательного адреса

txt_gateway

Текстовое поле для шлюза

scanning_progress

Индикатор выполнения сканирования

ProgressBar - индикатора выполнения

scanning_table

Таблица с результатами сканирования сети

DataGridView - таблица

Функциональная схема

Взаимодействие компонентов программы

При нажатии кнопки btn_scan вызывается её метод обработчик btn_scan_Click, который берет информацию с компонент ввода диапазона адресов nud1-nud8 и передает их в функцию Scan. В функции Scan начальный и конечный адреса диапазона передаются в методы SendPings и SendDns. Первый метод – асинхронно пингует все адреса из диапазона, второй – для каждого адреса из диапазона запрашивает в новом потоке Dns имя. При этом в методе SendPings перед вызовом асинхронных функций привязывается callback метод PingCompletedCallback, в котором извлекается информация об адресе, для которого пришел ответ и его статусе, после чего информация записывается в таблицу scanning_table и увеличивается значение прогресса scanning_progress. В методе SendDns для каждого адреса из диапазона создается новый поток, которому в качестве параметра указывается функция GetDns. GetDns в свою очередь пытается получить Dns имя соответствующего адреса, после чего записывает результат в таблицу scanning_table, в случае ошибки в таблицу записывается значение «Хост неизвестен», и увеличивается значение прогресса scanning_progress.

При нажатии кнопки btn_analyze вызывается её обработчик btn_scan_Click, которые берет информацию о выделенных адресах из таблицы scanning_table: начальный и конечный адрес подсети. Затем, передает их в функцию GetMask, которая вычисляет и возвращает маску подсети. Далее передает начальный адрес и найденную в функции GetNetworkAddress и GetBroadcast, первая вычисляет адрес подсети, вторая – широковещательный адрес. Далее передает найденный адрес подсети в функцию GetGateway, которая вычисляет шлюз подсети. Затем все результаты записываются в соответствующие компоненты: в txt_mask – маска подсети, txt_network – адрес подсети, txt_broadcast – широковещательный адрес, txt_gateway – шлюз подсети.

При нажатии кнопки btn_exit приложение закрывается.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]