Please use this identifier to cite or link to this item: https://er.chdtu.edu.ua/handle/ChSTU/10065
Title: Система моніторингу локальної комп’ютерної мережі з використанням програмних засобів збору та аналізу даних
Authors: Рудаков, Костянтин Сергійович
Кондесь, Артур Богданович
Keywords: локальна комп’ютерна мережа, моніторинг мережі, Python, TCP/IP, ICMP, сканування портів, мережеві вузли, графічний інтерфейс користувача, багатопотокова обробка, журнал подій, статистичний аналіз, експорт даних
Issue Date: Jun-2026
Abstract: У кваліфікаційній роботі розроблено систему моніторингу локальної комп’ютерної мережі з використанням програмних засобів збору та аналізу даних. Проведено аналіз основних методів моніторингу комп’ютерних мереж, розглянуто особливості використання мережевих протоколів TCP/IP, ICMP та технологій сканування TCP-портів. Виконано порівняльний аналіз наявних програмних рішень для моніторингу мереж, зокрема Wireshark, Nagios, Zabbix та PRTG Network Monitor, і обґрунтовано доцільність розробки власного програмного засобу для невеликих локальних мереж. Розроблено архітектуру та алгоритм функціонування системи, реалізовано програмне забезпечення мовою Python із використанням бібліотеки Tkinter для створення графічного інтерфейсу. Система забезпечує перевірку доступності мережевих вузлів, визначення часу відповіді, сканування відкритих портів, безперервний моніторинг, ведення журналу подій, формування статистики та експорт результатів у форматах CSV, JSON і текстових звітів. Практичне значення роботи полягає в можливості використання розробленого програмного засобу для контролю стану локальних комп’ютерних мереж, своєчасного виявлення несправностей і підвищення ефективності адміністрування мережевої інфраструктури.
URI: https://er.chdtu.edu.ua/handle/ChSTU/10065
Appears in Collections:123 Комп’ютерна інженерія (Спеціалізовані комп’ютерні системи)

Files in This Item:
File Description SizeFormat 
Б_123_2026_Кондесь.pdf
  Restricted Access
950.72 kBAdobe PDFView/Open Request a copy


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.

Extracted text
 
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ 
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ 
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ 
КАФЕДРА РОБОТОТЕХНІКИ ТА СПЕЦІАЛІЗОВАНИХ 
КОМП’ЮТЕРНИХ СИСТЕМ 
ПОЯСНЮВАЛЬНА ЗАПИСКА 
до кваліфікаційної роботи 
освітнього ступеня «бакалавр» 
 
 на тему: Система моніторингу локальної комп’ютерної мережі з 
використанням програмних засобів збору та аналізу даних 
 
 
Виконав здобувач вищої освіти 4 курсу, 
 групи СКС-2207 
 cпеціальності 123 Комп’ютерна  
 інженерія 
 освітня програма 
 «Спеціалізовані комп’ютерні 
 системи» 
  
 Артур КОНДЕСЬ 
 (ім’я та ПРІЗВИЩЕ) 
Керівник Костянтин РУДАКОВ 
 (ім’я та ПРІЗВИЩЕ) 
Рецензент  
 (ім’я та ПРІЗВИЩЕ) 
  
Захист дозволяю:   
зав. кафедри, д.т.н., професор   Валентина ЛУКАШЕНКО 
 (підпис)  (ім’я та ПРІЗВИЩЕ) 
 
 
Черкаси 2026  
ЗМІСТ 
ПЕРЕЛІК УМОВНИХ СКОРОЧЕНЬ ........................................................... 4 
ВСТУП ................................................................................................................. 5 
ЗАГАЛЬНА ХАРАКТЕРИСТИКА РОБОТИ ............................................... 7 
1 ТЕОРЕТИЧНІ ОСНОВИ МОНІТОРИНГУ КОМП’ЮТЕРНИХ 
МЕРЕЖ ............................................................................................................... 8 
1.1 Поняття та призначення моніторингу комп’ютерних мереж .......... 8 
1.2 Основні методи моніторингу локальних мереж ................................ 11 
1.3 Огляд сучасних систем моніторингу мереж ....................................... 13 
1.4 Аналіз протоколів та технологій моніторингу (ICMP, TCP/IP, 
SNMP) .............................................................................................................. 15 
Висновки до розділу 1 ................................................................................... 17 
2 АНАЛІЗ ТА ВИБІР ЗАСОБІВ РЕАЛІЗАЦІЇ СИСТЕМИ ..................... 19 
2.1 Аналіз предметної області ..................................................................... 19 
2.2 Вибір методів моніторингу мережі ....................................................... 21 
2.3 Обґрунтування вибору мови програмування Python ...................... 22 
2.4 Порівняльний аналіз існуючих програмних рішень ....................... 23 
2.5 Архітектура програмної системи ......................................................... 25 
Висновки до розділу 2 ................................................................................... 27 
3 РОЗРОБКА ТА РЕАЛІЗАЦІЯ СИСТЕМИ МОНІТОРИНГУ ............. 29 
3.1 Постановка задачі та вимоги до системи ........................................... 29 
3.2 Розробка алгоритму роботи системи ................................................... 31 
3.3 Програмна реалізація системи ............................................................. 34 
3.4 Реалізація функцій моніторингу та аналізу мережі ......................... 37 
3.5 Аналіз результатів роботи системи ...................................................... 40 
3.6 Оцінка ефективності та перспективи розвитку системи ................ 43 
Висновки до розділу 3 ................................................................................... 47 
ВИСНОВКИ ..................................................................................................... 49 
2 
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ ..................................................... 51 
ДОДАТОК А Програмний код системи моніторингу ............................... 53 
ДОДАТОК Б Інтерфейс програмного забезпечення ................................. 70 
ДОДАТОК В Опис основних фрагментів програмного коду .................. 82 
 
3 
ПЕРЕЛІК УМОВНИХ СКОРОЧЕНЬ 
IP (Internet Protocol) – протокол Інтернету, що використовується для 
адресації пристроїв у мережі. 
TCP (Transmission Control Protocol) – протокол керування передачею даних, 
що забезпечує надійну передачу інформації. 
ICMP (Internet Control Message Protocol) – протокол службових повідомлень, 
який використовується для перевірки доступності вузлів. 
GUI (Graphical User Interface) – графічний інтерфейс користувача. 
LAN (Local Area Network) – локальна комп’ютерна мережа. 
Ping – утиліта для перевірки доступності вузла у мережі. 
Port (Порт) – логічний канал для передачі даних між програмами у мережі. 
Socket – програмний інтерфейс для роботи з мережевими з’єднаннями. 
Thread (Потік) – окремий процес виконання у програмі, який дозволяє 
виконувати задачі паралельно. 
CSV (Comma-Separated Values) – формат збереження табличних даних у 
текстовому вигляді.  
JSON (JavaScript Object Notation) – формат обміну даними, що 
використовується для збереження та передачі інформації. 
Log (Журнал) – файл або область пам’яті, у якій зберігається інформація про 
роботу системи. 
Scan (Сканування) – процес перевірки мережевих вузлів або портів. 
Monitoring (Моніторинг) – процес постійного контролю стану мережі. 
Subnet (Підмережа) – частина мережі, що визначається маскою підмережі. 
 
4 
ВСТУП 
Сучасний розвиток інформаційних технологій супроводжується 
стрімким зростанням кількості комп’ютерних мереж та обсягів переданих 
даних [1]. Локальні комп’ютерні мережі є невід’ємною частиною 
інфраструктури підприємств, установ та організацій, забезпечуючи обмін 
інформацією та доступ до ресурсів. 
У зв’язку з цим особливої актуальності набуває задача моніторингу 
стану мережі, яка дозволяє своєчасно виявляти несправності, 
перевантаження, несанкціонований доступ та інші проблеми, що можуть 
вплинути на ефективність її функціонування. 
Існуючі програмні засоби моніторингу мереж не завжди повністю 
відповідають специфічним вимогам користувачів або можуть бути 
складними у налаштуванні чи використанні [14].  Це обумовлює 
необхідність розробки власних рішень, що забезпечують гнучкість, 
ефективність та адаптивність. 
Метою даної роботи є розробка системи моніторингу локальної 
комп’ютерної мережі з використанням програмних засобів збору та аналізу 
даних. 
Для досягнення поставленої мети необхідно вирішити наступні 
завдання: 
– проаналізувати існуючі методи моніторингу комп’ютерних мереж; 
– дослідити сучасні програмні засоби моніторингу; 
– обрати методи збору та аналізу мережевих даних; 
– розробити алгоритми функціонування системи; 
– реалізувати програмне забезпечення для моніторингу мережі; 
– провести тестування розробленої системи. 
Об’єктом дослідження є процес моніторингу локальної комп’ютерної 
мережі. 
5 
Предметом дослідження є методи та програмні засоби збору і аналізу 
даних у комп’ютерних мережах, методи дослідження включають аналіз 
літературних джерел, методи системного аналізу, моделювання, 
програмування та експериментальні дослідження. 
Практичне значення одержаних результатів полягає у створенні 
програмного засобу, який може бути використаний для моніторингу стану 
локальної мережі в реальних умовах, актуальність теми обумовлена 
стрімким розвитком інформаційних технологій та зростанням кількості 
пристроїв, підключених до комп’ютерних мереж. У сучасних умовах навіть 
невеликі локальні мережі можуть містити десятки пристроїв, що ускладнює 
процес їх адміністрування. 
Забезпечення стабільної роботи мережі потребує постійного контролю 
її стану, своєчасного виявлення несправностей та оперативного реагування 
на зміни.  
Відсутність ефективного моніторингу може призвести до зниження 
продуктивності мережі та втрати доступу до важливих ресурсів, у зв’язку з 
цим розробка програмних засобів моніторингу локальних комп’ютерних 
мереж є актуальною задачею, що має практичне значення [2]. 
 
6 
ЗАГАЛЬНА ХАРАКТЕРИСТИКА РОБОТИ 
Актуальність теми дослідження зумовлена необхідністю забезпечення 
ефективного контролю стану локальних комп’ютерних мереж, які є 
важливою складовою сучасної інформаційної інфраструктури. Зростання 
кількості підключених пристроїв та обсягів переданих даних ускладнює 
процес адміністрування мереж, що потребує використання спеціалізованих 
засобів моніторингу. 
Метою кваліфікаційної роботи є розробка системи моніторингу 
локальної комп’ютерної мережі з використанням програмних засобів збору 
та аналізу даних. 
Для досягнення поставленої мети у роботі вирішуються наступні 
задачі: 
− аналіз існуючих методів моніторингу комп’ютерних мереж; 
− дослідження сучасних програмних засобів моніторингу; 
− вибір методів збору та аналізу мережевих даних; 
− розробка алгоритмів функціонування системи; 
− реалізація програмного забезпечення; 
− проведення тестування та аналіз результатів. 
Об’єктом дослідження є процес моніторингу локальної комп’ютерної 
мережі. 
Предметом дослідження є методи та програмні засоби збору та аналізу 
даних у комп’ютерних мережах. 
Методи дослідження включають аналіз наукових джерел, системний 
аналіз, моделювання, програмування та експериментальні дослідження. 
Практичне значення отриманих результатів полягає у створенні 
програмного засобу, який може бути використаний для моніторингу стану 
локальної комп’ютерної мережі у реальних умовах. 
 
7 
1 ТЕОРЕТИЧНІ ОСНОВИ МОНІТОРИНГУ 
КОМП’ЮТЕРНИХ МЕРЕЖ 
1.1 Поняття та призначення моніторингу комп’ютерних мереж 
У сучасних умовах розвитку інформаційних технологій комп’ютерні 
мережі є невід’ємною частиною функціонування підприємств, навчальних 
закладів та домашніх інформаційних систем. Вони забезпечують передачу 
даних, доступ до ресурсів та взаємодію між користувачами. 
Зі збільшенням кількості пристроїв, підключених до мережі, зростає 
складність її обслуговування та контролю. У таких умовах особливого 
значення набуває моніторинг комп’ютерних мереж. 
Моніторинг комп’ютерної мережі – це процес постійного або 
періодичного спостереження за станом мережевої інфраструктури з метою 
отримання інформації про її роботу, виявлення несправностей та 
забезпечення стабільного функціонування [1]. 
Основним призначенням моніторингу є своєчасне виявлення проблем, 
пов’язаних із доступністю вузлів, затримками передачі даних, 
перевантаженням мережі або відмовами обладнання. Це дозволяє 
оперативно реагувати на зміни та запобігати виникненню критичних 
ситуацій. 
До основних задач моніторингу комп’ютерних мереж належать: 
− визначення доступності мережевих вузлів; 
− контроль якості з’єднання; 
− аналіз часу відповіді; 
− виявлення відмов та збоїв у роботі мережі; 
− збір статистичної інформації про стан мережі [3]. 
Моніторинг може здійснюватися як у реальному часі, так і з певним 
інтервалом, що дозволяє отримувати актуальні дані про стан мережі та 
аналізувати її роботу у динаміці. 
8 
Особливу роль відіграє автоматизований моніторинг, який 
виконується за допомогою спеціалізованих програмних засобів. Такі 
системи дозволяють значно спростити процес контролю мережі та 
підвищити його ефективність [14]. 
У сучасних мережах моніторинг використовується не лише для 
виявлення проблем, але й для оптимізації роботи мережевої інфраструктури, 
планування її розвитку та підвищення рівня безпеки, таким чином, 
моніторинг комп’ютерних мереж є важливим інструментом 
адміністрування, який забезпечує стабільну та ефективну роботу мережевих 
систем. 
Слід зазначити, що ефективність функціонування комп’ютерної мережі 
безпосередньо залежить від своєчасного виявлення та усунення 
несправностей, у разі відсутності належного моніторингу навіть незначні 
збої можуть призводити до серйозних наслідків, таких як зниження 
продуктивності, втрата даних або повне припинення роботи мережевих 
сервісів. 
Особливо актуальним є моніторинг у мережах з великою кількістю 
користувачів та пристроїв. У таких умовах ручний контроль стає практично 
неможливим, що обумовлює необхідність використання автоматизованих 
систем, важливим аспектом моніторингу є не лише виявлення проблем, але 
й аналіз їх причин. Це дозволяє не тільки усунути поточні несправності, але 
й запобігти їх повторному виникненню у майбутньому. 
Сучасні системи моніторингу здатні виконувати широкий спектр 
функцій, включаючи збір статистичних даних, аналіз навантаження на 
мережу, контроль використання ресурсів та формування звітів, крім того, 
моніторинг дозволяє здійснювати контроль за безпекою мережі [18]. 
Виявлення підозрілої активності, несанкціонованого доступу або 
аномальних навантажень може свідчити про наявність загроз, що 
потребують негайного реагування. 
9 
У контексті розвитку інформаційних технологій спостерігається 
тенденція до збільшення ролі моніторингу як інструменту управління 
мережами. Він стає не лише засобом контролю, але й важливим елементом 
стратегічного планування розвитку інформаційної інфраструктури. 
Використання систем моніторингу дозволяє оптимізувати 
використання ресурсів, підвищити продуктивність мережі та забезпечити її 
стабільну роботу, таким чином, впровадження ефективних засобів 
моніторингу є необхідною умовою функціонування сучасних комп’ютерних 
мереж, незалежно від їх масштабу та призначення. 
У рамках даної роботи особлива увага приділяється реалізації 
програмного засобу, який дозволяє виконувати базові функції моніторингу 
локальної мережі, зокрема визначення доступності вузлів, аналіз часу 
відповіді та виявлення відкритих портів, це дозволяє не лише отримати 
уявлення про стан мережі, але й сформувати основу для подальшого 
розвитку більш складних систем моніторингу. 
У сучасних умовах розвитку інформаційного суспільства значення 
комп’ютерних мереж постійно зростає. Вони використовуються для 
передачі великих обсягів інформації, забезпечення доступу до 
різноманітних сервісів та організації спільної роботи користувачів, у зв’язку 
з цим зростають вимоги до якості та надійності роботи мережевих систем. 
Будь-які збої у функціонуванні мережі можуть призвести до порушення 
робочих процесів, фінансових втрат або втрати доступу до критично 
важливої інформації, моніторинг дозволяє здійснювати постійний контроль 
за станом мережевих ресурсів та оперативно реагувати на будь-які 
відхилення від нормального режиму роботи. Це особливо важливо у 
системах, де необхідно забезпечити безперервність функціонування. 
Одним із ключових аспектів моніторингу є можливість отримання 
оперативної інформації про стан вузлів мережі. Це дозволяє адміністраторам 
швидко визначити джерело проблеми та вжити необхідних заходів для її 
10 
усунення, крім того, системи моніторингу можуть використовуватися для 
прогнозування можливих проблем. Аналіз накопичених даних дозволяє 
виявити тенденції у зміні параметрів мережі та своєчасно вжити заходів для 
запобігання збоям. 
Важливим напрямком є також інтеграція систем моніторингу з іншими 
інформаційними системами, що дозволяє створювати комплексні рішення 
для управління інформаційною інфраструктурою, у сучасних мережах 
моніторинг виконує не лише функцію контролю, але й забезпечує основу для 
прийняття управлінських рішень, на основі отриманих даних можна оцінити 
ефективність використання ресурсів, визначити необхідність модернізації 
обладнання або оптимізації мережевих процесів. 
Таким чином, моніторинг є невід’ємною складовою сучасних 
комп’ютерних мереж, що забезпечує їх ефективну, стабільну та безпечну 
роботу, у рамках даної роботи розглядається розробка системи моніторингу 
локальної мережі, яка реалізує базові функції контролю стану вузлів та 
дозволяє отримувати інформацію про їх доступність, характеристики 
з’єднання та відкриті мережеві порти. 
Реалізація таких функцій дозволяє значно підвищити ефективність 
контролю мережі та забезпечити своєчасне виявлення проблем у її роботі. 
1.2 Основні методи моніторингу локальних мереж 
Моніторинг локальних комп’ютерних мереж може здійснюватися 
різними методами, які відрізняються за принципами роботи, рівнем 
деталізації отриманих даних та складністю реалізації, у загальному випадку 
методи моніторингу поділяються на активні та пасивні [4]. Активний 
моніторинг передбачає надсилання запитів до мережевих вузлів з метою 
отримання інформації про їх стан, при цьому система моніторингу ініціює 
взаємодію з пристроями, що дозволяє визначити їх доступність, час 
відповіді та інші параметри. 
11 
Одним із найбільш поширених методів активного моніторингу є 
використання ICMP-запитів [11]. За допомогою команди ping здійснюється 
перевірка доступності вузлів та вимірюється час затримки передачі даних, 
перевагами активного моніторингу є простота реалізації та можливість 
швидкого отримання інформації, однак слід враховувати, що деякі пристрої 
можуть не відповідати на запити через налаштування безпеки. 
Пасивний моніторинг, на відміну від активного, не передбачає 
надсилання запитів, він базується на аналізі мережевого трафіку, що 
проходить через мережу, такий підхід дозволяє отримати більш детальну 
інформацію про роботу мережі, включаючи характеристики трафіку, 
взаємодію між вузлами та використання ресурсів, пасивний моніторинг є 
більш складним у реалізації, але забезпечує глибший аналіз мережевих 
процесів [15]. 
Окрім поділу на активні та пасивні методи, моніторинг може 
класифікуватися за рівнем, на якому він здійснюється, на фізичному рівні 
контролюється стан мережевого обладнання, зокрема кабелів, комутаторів 
та інших пристроїв, це дозволяє виявляти апаратні несправності, на 
мережевому рівні здійснюється аналіз передачі даних між вузлами, 
визначається доступність IP-адрес та маршрутизація пакетів, на 
прикладному рівні моніторинг дозволяє оцінювати роботу конкретних 
сервісів, таких як веб-сервери, бази даних або поштові системи.  
Важливим методом є сканування мережі, яке полягає у перевірці 
певного діапазону IP-адрес з метою виявлення активних вузлів, сканування 
може виконуватися як послідовно, так і паралельно з використанням 
багатопотокових технологій, що дозволяє значно прискорити процес, ще 
одним методом є перевірка відкритих портів, яка дозволяє визначити, які 
мережеві служби доступні на певному вузлі. 
Цей метод широко використовується для аналізу стану мережі та 
виявлення потенційних вразливостей, сучасні системи моніторингу 
12 
зазвичай поєднують декілька методів, що дозволяє отримати більш повну 
інформацію про стан мережі, наприклад, поєднання ICMP-запитів та 
сканування портів дозволяє одночасно визначати доступність вузлів та 
аналізувати їх функціональні можливості, важливим аспектом є також 
періодичність виконання моніторингу, регулярне виконання перевірок 
дозволяє відстежувати зміни у стані мережі та своєчасно реагувати на 
проблеми. 
У сучасних умовах особливу роль відіграє автоматизація процесів 
моніторингу, використання програмних засобів дозволяє значно зменшити 
навантаження на адміністратора та підвищити ефективність контролю. 
У рамках даної роботи основна увага приділяється використанню 
активних методів моніторингу, зокрема ICMP-запитів та сканування портів 
[22]. 
Ці методи забезпечують достатній рівень інформації для аналізу стану 
локальної мережі та дозволяють реалізувати ефективну систему 
моніторингу. 
Таким чином, вибір методів моніторингу залежить від поставлених 
задач, характеристик мережі та вимог до точності отриманих даних. 
1.3 Огляд сучасних систем моніторингу мереж 
У сучасних умовах існує велика кількість програмних засобів, 
призначених для моніторингу комп’ютерних мереж. 
 Вони відрізняються функціональними можливостями, складністю 
використання, сферою застосування та рівнем автоматизації, сучасні 
системи моніторингу дозволяють здійснювати контроль стану мережевих 
вузлів, аналіз трафіку, збір статистики та формування звітів. Вони можуть 
використовуватися як у великих корпоративних мережах, так і у невеликих 
локальних системах. 
13 
Однією з найбільш відомих систем є Wireshark, яка використовується 
для аналізу мережевого трафіку [15]. Вона дозволяє детально досліджувати 
пакети даних, що передаються у мережі, та отримувати інформацію про їх 
структуру. 
Перевагою Wireshark є високий рівень деталізації даних, проте вона не 
призначена для постійного моніторингу доступності вузлів, а 
використовується переважно для аналізу мережевих процесів.Іншою 
популярною системою є Nagios, яка використовується для моніторингу 
серверів, мережевого обладнання та служб [16]. Вона підтримує систему 
плагінів, що дозволяє розширювати її функціональність. 
Nagios забезпечує контроль доступності вузлів, аналіз стану сервісів 
та надсилання повідомлень у разі виникнення проблем. Ще однією відомою 
системою моніторингу є Zabbix, яка є комплексним рішенням для контролю 
стану мережевої інфраструктури [14]. 
Zabbix дозволяє здійснювати моніторинг серверів, мережевого 
обладнання, баз даних та інших компонентів інформаційної системи. Вона 
підтримує автоматичний збір даних, аналіз та візуалізацію результатів. 
Перевагою Zabbix є гнучкість налаштування та можливість роботи з 
великими обсягами даних. Однак її налаштування може бути складним та 
потребує певного рівня підготовки користувача. PRTG Network Monitor є ще 
одним популярним програмним продуктом, який забезпечує зручний 
графічний інтерфейс та широкий набір функцій для моніторингу мережі 
[17]. 
Ця система дозволяє контролювати стан вузлів, аналізувати трафік, 
відстежувати використання ресурсів та формувати звіти. Вона орієнтована 
на використання у корпоративних мережах. Серед сучасних рішень також 
слід відзначити OpenNMS та SolarWinds, які забезпечують високий рівень 
автоматизації процесів моніторингу та підтримують інтеграцію з іншими 
системами [18, 19]. Незважаючи на широкий вибір програмних засобів, 
14 
більшість з них орієнтована на використання у великих мережах та потребує 
значних ресурсів для встановлення та налаштування. У невеликих 
локальних мережах часто виникає потреба у простих та зручних 
інструментах, які дозволяють швидко отримати інформацію про стан вузлів 
без складної конфігурації. 
У таких випадках доцільно використовувати легкі програмні рішення, 
які забезпечують базові функції моніторингу, зокрема перевірку доступності 
вузлів та аналіз часу відповіді. Розроблена у даній роботі система належить 
саме до таких рішень. Вона забезпечує виконання основних функцій 
моніторингу, при цьому не потребує складного налаштування та може бути 
використана у будь-якій локальній мережі. 
Крім того, система має розширений функціонал, який включає 
визначення відкритих портів, ведення журналу подій, формування 
статистики та експорт результатів у різні формати. 
Таким чином, розроблений програмний засіб поєднує простоту 
використання та достатній рівень функціональності, що робить його 
ефективним інструментом для моніторингу локальних комп’ютерних 
мереж. 
1.4 Аналіз протоколів та технологій моніторингу (ICMP, TCP/IP, 
SNMP) 
Для реалізації моніторингу комп’ютерних мереж використовуються 
різні мережеві протоколи та технології, які забезпечують обмін даними між 
вузлами та дозволяють отримувати інформацію про їх стан. Одним із 
базових протоколів є TCP/IP, який є основою функціонування сучасних 
комп’ютерних мереж [12]. Він забезпечує передачу даних між пристроями 
та визначає правила їх взаємодії. 
15 
Протокол TCP (Transmission Control Protocol) відповідає за надійну 
передачу даних, контроль помилок та відновлення втрачених пакетів. Він 
гарантує, що дані будуть доставлені у правильному порядку. 
Протокол IP (Internet Protocol) відповідає за адресацію вузлів та 
маршрутизацію пакетів у мережі. Саме завдяки IP-адресам здійснюється 
ідентифікація пристроїв У контексті моніторингу протоколи TCP/IP 
дозволяють визначати доступність вузлів, перевіряти роботу мережевих 
служб та аналізувати характеристики з’єднання. Використання TCP/IP є 
основою для реалізації більшості сучасних систем моніторингу, оскільки 
цей стек протоколів підтримується практично всіма мережевими 
пристроями. Особливе значення для моніторингу має протокол ICMP 
(Internet Control Message Protocol), який використовується для передачі 
службових повідомлень у мережі [11]. 
ICMP дозволяє здійснювати перевірку доступності вузлів за 
допомогою спеціальних запитів та відповідей. Найбільш відомим 
прикладом використання цього протоколу є команда ping. За допомогою 
ICMP-запитів можна визначити, чи доступний вузол у мережі, а також 
виміряти час затримки передачі даних. Це дозволяє оцінити якість 
мережевого з’єднання. Перевагою ICMP є його простота та швидкість 
роботи, що робить його зручним інструментом для базового моніторингу. 
Однак слід враховувати, що деякі пристрої можуть блокувати ICMP-запити 
з міркувань безпеки, що може впливати на точність отриманих результатів. 
Незважаючи на це, ICMP залишається одним із найпоширеніших протоколів 
для реалізації систем моніторингу, особливо у локальних мережах. 
У розробленій системі саме ICMP використовується для визначення 
доступності вузлів та оцінки часу відповіді. 
Іншим важливим протоколом, що використовується у системах 
моніторингу, є SNMP (Simple Network Management Protocol) [10]. 
16 
SNMP призначений для збору та аналізу інформації про стан 
мережевого обладнання. Він дозволяє отримувати дані про навантаження на 
процесор, використання пам’яті, стан інтерфейсів та інші параметри. 
Основною перевагою SNMP є можливість отримання детальної інформації 
про роботу пристроїв, що робить його незамінним у великих корпоративних 
мережах. Проте використання SNMP потребує налаштування відповідних 
служб на мережевому обладнанні, що ускладнює його застосування у 
невеликих локальних мережах. У контексті даної роботи використання 
SNMP не є обов’язковим, оскільки основна увага приділяється простим та 
ефективним методам моніторингу, таким як ICMP та перевірка портів. 
Додатково використовується технологія сканування TCP-портів, яка 
дозволяє визначити, які мережеві служби доступні на певному вузлі. Цей 
підхід доповнює ICMP-моніторинг та дозволяє отримати більш повну 
інформацію про стан мережі. Таким чином, поєднання протоколів ICMP, 
TCP/IP та методів сканування портів забезпечує ефективний контроль стану 
локальної комп’ютерної мережі. 
Висновки до розділу 1 
У першому розділі було розглянуто теоретичні основи 
функціонування локальних комп’ютерних мереж, а також проаналізовано 
принципи їх побудови та роботи. Особливу увагу приділено мережевим 
протоколам, таким як TCP/IP та ICMP, які використовуються для передачі 
даних та перевірки доступності вузлів у мережі. 
Було встановлено, що ефективний моніторинг мережі є важливою 
складовою її стабільного функціонування, оскільки дозволяє своєчасно 
виявляти проблеми та забезпечувати контроль стану вузлів. Отримані 
теоретичні знання стали основою для подальшого аналізу існуючих рішень 
та розробки власної системи моніторингу локальної мережі.  Додатково слід 
зазначити, що розгляд теоретичних основ дозволив сформувати цілісне 
17 
уявлення про принципи функціонування комп’ютерних мереж та їх 
структуру, що є необхідним для подальшого дослідження та розробки 
програмних засобів моніторингу. 
У ході аналізу було встановлено, що сучасні мережі характеризуються 
високою складністю та динамічністю, що вимагає використання 
спеціалізованих інструментів для контролю їх стану, при цьому особливу 
роль відіграють мережеві протоколи, які забезпечують взаємодію між 
пристроями. Було також визначено, що ефективність роботи мережі значною 
мірою залежить від своєчасного виявлення несправностей, що підкреслює 
необхідність впровадження систем моніторингу. Таким чином, теоретичні 
дослідження, проведені у даному розділі, створили основу для подальшого 
аналізу та розробки програмного забезпечення.  
18 
2 АНАЛІЗ ТА ВИБІР ЗАСОБІВ РЕАЛІЗАЦІЇ СИСТЕМИ 
 
2.1 Аналіз предметної області 
Предметна область дослідження у даній роботі пов’язана з процесом 
моніторингу локальних комп’ютерних мереж, який є важливою складовою 
адміністрування інформаційних систем. Локальні мережі широко 
використовуються у різних сферах діяльності, зокрема у навчальних 
закладах, на підприємствах та у домашніх умовах. Вони забезпечують обмін 
даними між пристроями, доступ до ресурсів та організацію спільної роботи 
користувачів. 
З розвитком інформаційних технологій кількість пристроїв, 
підключених до мережі, постійно зростає. Це призводить до ускладнення 
структури мережі та підвищення вимог до її обслуговування. У таких умовах 
виникає необхідність використання засобів моніторингу, які дозволяють 
отримувати інформацію про стан мережевих вузлів, їх доступність та 
характеристики з’єднання. 
Основною задачею моніторингу є забезпечення стабільної роботи 
мережі шляхом своєчасного виявлення та усунення проблем. Для цього 
необхідно здійснювати регулярний контроль стану вузлів, аналізувати час 
відповіді та відстежувати зміни у роботі мережі. Таким чином, моніторинг є 
важливим інструментом управління комп’ютерними мережами. У процесі 
аналізу предметної області було встановлено, що існуючі системи 
моніторингу часто є складними у використанні та потребують значних 
ресурсів для їх впровадження. Більшість таких систем орієнтована на великі 
корпоративні мережі, що робить їх менш ефективними для використання у 
невеликих локальних мережах. У невеликих мережах користувачі часто 
потребують простих та зрозумілих інструментів, які дозволяють швидко 
отримати інформацію про стан мережі без складного налаштування. 
19 
Аналіз показав, що основними параметрами, які цікавлять 
користувача, є доступність вузлів, час відповіді та наявність відкритих 
портів. Крім того, важливим є можливість відстеження змін у стані мережі, 
що дозволяє оперативно реагувати на появу або зникнення пристроїв. Таким 
чином, актуальним є створення програмного засобу, який забезпечує базові 
функції моніторингу та є простим у використанні. У рамках даної роботи 
предметна область розглядається з точки зору реалізації системи 
моніторингу локальної мережі, яка поєднує простоту використання та 
достатній рівень функціональності. 
Розроблена система орієнтована на виконання основних задач 
моніторингу, зокрема визначення доступності вузлів, аналіз часу відповіді 
та виявлення відкритих портів. Крім того, система забезпечує ведення 
журналу подій, формування статистики та експорт результатів у різні 
формати. Це дозволяє не лише отримувати інформацію про стан мережі, але 
й виконувати її подальший аналіз. 
Проведений аналіз предметної області підтверджує актуальність 
розробки простих та ефективних систем моніторингу, які можуть бути 
використані у локальних мережах різного масштабу. 
Таким чином, обрана тема є актуальною та має практичне значення. 
 
Таблиця 2.1 
Порівняльна характеристика систем моніторингу 
Система Функціональність Складність Інтерфейс Призначення 
Wireshark Висока Висока Складний Аналіз трафіку 
Nagios Висока Висока Середній Сервери, 
мережі 
Zabbix Дуже висока Висока Складний Корпоративні 
мережі 
PRTG Висока Середня Зручний Моніторинг 
мереж 
Розроблена Середня Низька Простий Локальні 
мережі 
 
20 
Аналіз таблиці показує, що розроблена система поступається за 
функціональністю складним корпоративним рішенням, однак має значно 
простіший інтерфейс та не потребує складного налаштування, що робить її 
зручною для використання у локальних мережах. 
2.2 Вибір методів моніторингу мережі 
Для реалізації системи моніторингу локальної комп’ютерної мережі 
необхідно обрати відповідні методи, які забезпечать отримання достовірної 
інформації про стан мережевих вузлів. У даній роботі основна увага 
приділяється використанню активних методів моніторингу, які 
передбачають надсилання запитів до вузлів мережі з метою визначення їх 
доступності. Одним із основних методів є використання ICMP-запитів, які 
дозволяють перевірити доступність вузлів за допомогою команди ping. 
Цей метод є простим у реалізації та дозволяє швидко отримати 
інформацію про стан мережі. За допомогою ICMP-запитів визначається, чи 
відповідає вузол на запит, а також вимірюється час затримки передачі даних. 
Це дозволяє оцінити якість мережевого з’єднання та виявити можливі 
проблеми. Окрім перевірки доступності вузлів, важливим є визначення їх 
функціональних можливостей. Для цього у даній роботі використовується 
метод сканування TCP-портів, який дозволяє визначити, які мережеві 
служби доступні на певному вузлі. 
Сканування портів здійснюється шляхом встановлення з’єднання з 
певними портами та аналізу відповіді. Якщо порт відкритий, це означає, що 
відповідна служба доступна та працює. Цей метод дозволяє отримати 
додаткову інформацію про стан вузлів та розширює можливості 
моніторингу. Для підвищення швидкості роботи системи використовується 
багатопотоковий підхід, який дозволяє одночасно виконувати перевірку 
декількох вузлів. Це значно скорочує час сканування, особливо у випадку 
великої кількості IP-адрес. 
21 
Додатково у системі реалізовано режим безперервного моніторингу, 
який дозволяє виконувати регулярні перевірки стану мережі через заданий 
інтервал часу. Це дає можливість відстежувати зміни у стані вузлів та 
оперативно реагувати на появу або зникнення пристроїв. Важливим 
аспектом є також обробка отриманих результатів, яка включає їх 
відображення у зручному вигляді, ведення журналу подій та формування 
статистики. 
Поєднання методів ICMP-моніторингу, сканування портів та 
багатопотокової обробки дозволяє створити ефективну систему контролю 
стану локальної мережі. Таким чином, обрані методи забезпечують 
достатній рівень інформативності, швидкість роботи та зручність 
використання системи моніторингу. 
2.3 Обґрунтування вибору мови програмування Python 
При розробці програмного забезпечення важливим етапом є вибір 
мови програмування, яка буде використовуватися для реалізації системи. У 
даній роботі було обрано мову програмування Python, яка є однією з 
найпопулярніших сучасних мов програмування [7]. 
Python широко використовується у різних сферах, зокрема у розробці 
програмного забезпечення, аналізі даних, автоматизації процесів та 
створенні мережевих додатків. Однією з основних переваг Python є простота 
синтаксису, що дозволяє швидко розробляти програмні рішення та спрощує 
процес підтримки коду. Завдяки зрозумілій структурі програм Python є 
доступним навіть для користувачів з базовим рівнем підготовки. 
 Важливою перевагою Python є наявність великої кількості 
стандартних бібліотек, які дозволяють реалізувати необхідний функціонал 
без використання сторонніх засобів. Зокрема, для реалізації системи 
моніторингу використовуються такі модулі, як subprocess, socket, threading 
та tkinter [9]. Модуль subprocess дозволяє виконувати системні команди, 
22 
зокрема ping, що використовується для перевірки доступності вузлів. 
Модуль socket забезпечує роботу з мережевими з’єднаннями та дозволяє 
виконувати сканування портів. Модуль threading використовується для 
реалізації багатопотоковості, що дозволяє значно прискорити процес 
сканування. Модуль tkinter забезпечує створення графічного інтерфейсу 
користувача, що підвищує зручність використання програми. 
Таким чином, Python надає всі необхідні інструменти для реалізації 
системи моніторингу. Ще однією важливою перевагою Python є його 
кросплатформність, що дозволяє запускати розроблені програми на різних 
операційних системах без значних змін у коді. Це забезпечує 
універсальність програмного забезпечення та можливість його 
використання у різних середовищах. Крім того, Python підтримує різні стилі 
програмування, що дозволяє створювати гнучкі та масштабовані програмні 
рішення. 
У контексті даної роботи використання Python дозволило реалізувати 
всі необхідні функції системи моніторингу, включаючи перевірку 
доступності вузлів, сканування портів, ведення журналу подій та 
формування статистики. Завдяки своїм перевагам Python є оптимальним 
вибором для реалізації системи моніторингу локальної комп’ютерної мережі 
[6]. Таким чином, вибір даної мови програмування є обґрунтованим та 
доцільним. 
2.4 Порівняльний аналіз існуючих програмних рішень 
На сучасному етапі розвитку інформаційних технологій існує велика 
кількість програмних засобів, призначених для моніторингу комп’ютерних 
мереж. Вони відрізняються функціональними можливостями, рівнем 
складності, сферою застосування та вимогами до ресурсів. 
Аналіз існуючих рішень дозволяє визначити їх переваги та недоліки, а 
також обґрунтувати необхідність розробки власного програмного засобу. 
23 
Одним із найбільш відомих інструментів є Wireshark, який використовується 
для аналізу мережевого трафіку [15]. Він дозволяє досліджувати пакети 
даних на низькому рівні та отримувати детальну інформацію про їх 
структуру. Перевагою Wireshark є висока точність аналізу та можливість 
дослідження різних мережевих протоколів. Проте цей інструмент не 
призначений для постійного моніторингу доступності вузлів і не має 
функцій автоматичного контролю стану мережі. Таким чином, Wireshark є 
потужним засобом аналізу, але не підходить для реалізації системи 
моніторингу у класичному розумінні. 
Іншою популярною системою є Nagios, яка широко використовується 
для моніторингу серверів та мережевого обладнання. Nagios дозволяє 
здійснювати контроль доступності вузлів, аналізувати стан служб та 
надсилати повідомлення у разі виникнення проблем [16]. Перевагою цієї 
системи є її гнучкість та можливість розширення функціоналу за допомогою 
плагінів. Однак налаштування Nagios є досить складним процесом, який 
потребує відповідних знань та досвіду. 
Ще одним відомим рішенням є Zabbix, який є комплексною системою 
моніторингу мережевої інфраструктури [14]. Zabbix забезпечує збір 
великого обсягу даних, їх обробку та візуалізацію. Він дозволяє створювати 
графіки, аналізувати навантаження на мережу та відстежувати зміни у її 
роботі. Незважаючи на широкі можливості, Zabbix потребує значних 
ресурсів та складного налаштування, що обмежує його використання у 
невеликих мережах. нPRTG Network Monitor є сучасним програмним 
продуктом, який забезпечує зручний графічний інтерфейс та широкий набір 
функцій для моніторингу мережі. Він дозволяє здійснювати контроль стану 
вузлів, аналіз трафіку, відстеження використання ресурсів та формування 
звітів. 
Перевагою PRTG є простота використання та наочне представлення 
інформації [17]. Однак ця система є комерційною, а її безкоштовна версія 
24 
має обмеження. Серед інших систем слід відзначити SolarWinds та 
OpenNMS, які використовуються у великих корпоративних мережах [18]. 
Вони забезпечують високий рівень автоматизації, підтримують інтеграцію з 
іншими системами та дозволяють виконувати складний аналіз мережевої 
інфраструктури. Проте такі системи є складними у впровадженні та 
потребують значних фінансових та технічних ресурсів.алаштування, що 
обмежує його використання у невеликих мережах. 
Аналіз існуючих програмних рішень показує, що більшість з них 
орієнтована на великі мережі та потребує складного налаштування. У той же 
час у невеликих локальних мережах виникає потреба у простих та 
ефективних інструментах моніторингу. Розроблена у даній роботі система 
спрямована саме на вирішення цієї задачі. Вона забезпечує виконання 
основних функцій моніторингу, таких як перевірка доступності вузлів, 
аналіз часу відповіді, визначення відкритих портів та ведення журналу 
подій. Крім того, система має графічний інтерфейс, що значно спрощує її 
використання, а також підтримує експорт результатів у різні формати. 
На відміну від складних корпоративних систем, розроблений 
програмний засіб не потребує значних ресурсів та може бути використаний 
у будь-якій локальній мережі.  
Таким чином, проведений порівняльний аналіз підтверджує 
доцільність розробки власної системи моніторингу, яка поєднує простоту 
використання та достатній рівень функціональності. 
2.5 Архітектура програмної системи 
Архітектура програмної системи визначає структуру програмного 
забезпечення, взаємодію його компонентів та принципи організації роботи. 
У даній роботі розроблено систему моніторингу локальної комп’ютерної 
мережі, яка реалізована у вигляді настільного додатку з графічним 
інтерфейсом користувача. 
25 
Архітектура системи побудована за модульним принципом, що 
дозволяє розділити функціональність на окремі логічні частини. 
Основними компонентами системи є: 
− модуль користувацького інтерфейсу; 
− модуль мережевого сканування; 
− модуль обробки результатів; 
− модуль ведення журналу подій; 
− модуль експорту даних. 
Такий підхід забезпечує гнучкість системи та спрощує її подальший 
розвиток. Модуль користувацького інтерфейсу відповідає за взаємодію 
користувача з програмою. Він реалізований з використанням бібліотеки 
tkinter та включає елементи керування, такі як поля введення, кнопки, 
таблиці та вкладки. 
Інтерфейс дозволяє задавати параметри моніторингу, запускати 
сканування, переглядати результати та виконувати експорт даних. Модуль 
мережевого сканування забезпечує перевірку доступності вузлів та 
визначення їх характеристик. Він використовує ICMP-запити для перевірки 
доступності та TCP-з’єднання для сканування портів. Для підвищення 
продуктивності застосовується багатопотоковий підхід, що дозволяє 
одночасно виконувати перевірку декількох вузлів. 
Модуль обробки результатів відповідає за збереження та аналіз 
отриманих даних. Результати сканування зберігаються у структурованому 
вигляді та відображаються у таблиці. Крім того, здійснюється фільтрація 
даних та сортування, що дозволяє зручно працювати з великою кількістю 
інформації. 
Модуль ведення журналу подій забезпечує запис інформації про 
роботу системи. У журналі фіксуються такі події, як запуск та зупинка 
моніторингу, зміна стану вузлів та завершення сканування. 
26 
 Це дозволяє відстежувати роботу системи та аналізувати її поведінку 
у часі. Модуль експорту даних забезпечує збереження результатів 
моніторингу у різні формати, зокрема CSV, JSON та текстові звіти. Це 
дозволяє використовувати отримані дані у сторонніх програмних засобах та 
виконувати їх подальший аналіз. 
Важливою складовою архітектури є також модуль статистики, який 
забезпечує узагальнення отриманих результатів та їх аналітичну обробку. 
Система підтримує режим безперервного моніторингу, що дозволяє 
виконувати регулярні перевірки стану мережі.  
Таким чином, архітектура розробленої системи забезпечує ефективну 
взаємодію її компонентів, гнучкість використання та можливість 
подальшого розширення функціональності. Обрана структура дозволяє 
реалізувати всі необхідні функції моніторингу та забезпечує стабільну 
роботу програмного забезпечення. 
Висновки до розділу 2 
У другому розділі було виконано аналіз існуючих програмних засобів 
моніторингу комп’ютерних мереж, зокрема розглянуто такі системи, як 
Wireshark, Nagios, Zabbix та PRTG Network Monitor. Проведений аналіз 
показав, що існуючі рішення мають широкий функціонал, однак часто є 
складними у налаштуванні та використанні, що обмежує їх застосування у 
невеликих локальних мережах. 
На основі проведеного порівняння було визначено вимоги до 
розроблюваної системи, серед яких простота використання, достатній 
функціонал та висока швидкість роботи. Таким чином, було обґрунтовано 
доцільність розробки власного програмного засобу для моніторингу 
локальної комп’ютерної мережі. Проведений аналіз існуючих систем 
моніторингу показав, що більшість із них орієнтовані на використання у 
27 
великих корпоративних мережах та мають значний функціонал, який не 
завжди є необхідним у невеликих локальних мережах. 
Було встановлено, що складність налаштування та використання таких 
систем може бути суттєвою перешкодою для користувачів, які не мають 
достатнього рівня підготовки у сфері адміністрування мереж. Разом з тим, 
існуючі рішення демонструють високий рівень ефективності та надійності, 
що свідчить про актуальність використання програмних засобів для 
моніторингу. У результаті аналізу було сформовано вимоги до 
розроблюваної системи, які враховують як функціональні можливості, так і 
зручність використання, що стало основою для подальшої реалізації 
програмного засобу. 
28 
3 РОЗРОБКА ТА РЕАЛІЗАЦІЯ СИСТЕМИ МОНІТОРИНГУ 
3.1 Постановка задачі та вимоги до системи 
Розробка системи моніторингу локальної комп’ютерної мережі 
потребує чіткого формулювання задачі та визначення вимог до програмного 
забезпечення. Основною метою розробки є створення програмного засобу, 
який дозволяє здійснювати контроль стану мережевих вузлів, аналізувати їх 
доступність та отримувати додаткову інформацію про характеристики 
з’єднання. У рамках поставленої задачі система повинна забезпечувати 
перевірку доступності вузлів у заданому діапазоні IP-адрес. Крім того, 
необхідно реалізувати можливість визначення часу відповіді, що дозволяє 
оцінити якість мережевого з’єднання. 
Важливою вимогою є також можливість отримання інформації про 
відкриті порти, що дозволяє визначити доступні мережеві служби на вузлах. 
Таким чином, система повинна забезпечувати комплексний підхід до 
моніторингу локальної мережі. Окрім функціональних вимог, до системи 
висуваються вимоги щодо зручності використання. 
Програмний засіб повинен мати графічний інтерфейс, який забезпечує 
просту та зрозумілу взаємодію користувача з системою. Користувач повинен 
мати можливість задавати параметри моніторингу, зокрема діапазон IP-
адрес, інтервал перевірки та кількість потоків. Система повинна 
забезпечувати наочне відображення результатів у вигляді таблиці, що 
дозволяє швидко оцінити стан мережі. Для підвищення зручності 
сприйняття інформації необхідно реалізувати кольорову індикацію стану 
вузлів. 
На рисунку 3.1 представлено структурну схему системи моніторингу 
локальної мережі, яка відображає основні компоненти програмного 
забезпечення та взаємодію між ними, при цьому користувач взаємодіє з 
системою через графічний інтерфейс, який передає команди до модуля 
29 
управління, що координує виконання основних функцій, зокрема перевірку 
доступності вузлів, сканування портів та моніторинг, після чого результати 
обробляються та відображаються у вигляді таблиць, журналу подій та 
статистики, а також можуть бути збережені у різні формати. 
 
 
Рис. 3.1. Структурна схема системи моніторингу мережі 
 
Це дозволяє користувачу швидко визначити, які пристрої доступні, а 
які – ні. Важливою вимогою до системи є забезпечення високої 
продуктивності. Для цього необхідно використовувати багатопотоковий 
підхід, який дозволяє виконувати перевірку декількох вузлів одночасно. Це 
значно скорочує час сканування, особливо у випадку великої кількості IP-
адрес. Крім того, система повинна підтримувати режим безперервного 
моніторингу, який дозволяє виконувати регулярні перевірки стану мережі. 
30 
Це дає можливість відстежувати зміни у роботі мережі та оперативно 
реагувати на появу або зникнення пристроїв. Система також повинна 
забезпечувати ведення журналу подій, у якому фіксуються основні зміни 
стану мережі. Додатково необхідно реалізувати можливість експорту 
результатів моніторингу у різні формати. Це дозволяє використовувати 
отримані дані для подальшого аналізу у сторонніх програмних засобах. 
Важливим аспектом є також формування статистичних даних, які 
дозволяють оцінити загальний стан мережі. Система повинна бути простою 
у встановленні та використанні, не потребувати складного налаштування та 
працювати у стандартному середовищі операційної системи. Таким чином, 
сформульовані вимоги визначають основні характеристики розроблюваної 
системи та забезпечують її ефективну реалізацію. Реалізація зазначених 
вимог дозволяє створити програмний засіб, який поєднує функціональність, 
зручність використання та високу продуктивність. 
 
Таблиця 3.1   
Результати сканування локальної мережі 
IP-адреса Статус Час відповіді (мс) Відкриті порти 
192.168.0.1 Доступний 1.2 80, 443 
192.168.0.5 Доступний 3.5 135, 445 
192.168.0.10 Недоступний - - 
192.168.0.15 Доступний 2.8 22, 3389 
 
Дані таблиці відображають результати перевірки доступності вузлів у 
локальній мережі та дозволяють визначити їх стан, а також отримати 
інформацію про відкриті порти та характеристики з’єднання. 
3.2 Розробка алгоритму роботи системи 
Розробка алгоритму роботи системи є одним із ключових етапів 
створення програмного забезпечення. Алгоритм визначає послідовність дій, 
які виконуються системою для досягнення поставленої мети. 
31 
У даній роботі алгоритм роботи системи моніторингу локальної 
мережі включає декілька основних етапів. Першим етапом є введення 
користувачем параметрів моніторингу. До цих параметрів належать базова 
IP-адреса, діапазон хостів, інтервал перевірки та кількість потоків. 
Після введення параметрів система виконує їх перевірку на 
коректність. Це дозволяє уникнути помилок під час виконання програми. 
Наступним етапом є формування списку IP-адрес, які підлягають перевірці. 
Система створює перелік адрес у заданому діапазоні та передає їх на 
обробку. 
 
Рис. 3.2. Алгоритм роботи системи моніторингу 
 
На рисунку 3.2 представлено алгоритм роботи системи моніторингу 
локальної мережі, який включає послідовність дій від введення параметрів 
користувачем до отримання та обробки результатів, при цьому система 
32 
формує список IP-адрес, запускає багатопотокову обробку та виконує 
перевірку доступності вузлів, після чого для доступних пристроїв 
здійснюється сканування портів, а отримані результати об'єднуються та 
відображаються користувачу, що забезпечує повний цикл моніторингу. 
Для підвищення продуктивності використовується багатопотоковий 
підхід, при якому кожен потік виконує перевірку окремого вузла [7]. Це 
дозволяє значно скоротити загальний час сканування. Для кожної IP-адреси 
виконується перевірка доступності за допомогою ICMP-запиту. У разі 
отримання відповіді вузол вважається доступним, і система визначає час 
затримки. 
Якщо відповідь не отримано, вузол вважається недоступним. Для 
доступних вузлів додатково виконується сканування портів. Це дозволяє 
визначити, які мережеві служби працюють на пристрої. Результати 
перевірки зберігаються у структурованому вигляді та передаються до 
модуля обробки. Система виконує оновлення таблиці результатів, що 
відображається у графічному інтерфейсі. Крім того, виконується запис подій 
у журнал, що дозволяє відстежувати зміни у стані мережі. На цьому етапі 
формується повна картина стану мережі. У разі активації режиму 
моніторингу система повторює процес сканування через заданий інтервал 
часу. Це дозволяє відстежувати зміни у реальному часі та оперативно 
реагувати на появу або зникнення вузлів. 
Після завершення сканування система виконує аналіз отриманих 
результатів та формує статистичні дані. Результати можуть бути збережені у 
різні формати, що забезпечує можливість їх подальшого використання. 
Таким чином, алгоритм роботи системи забезпечує повний цикл 
обробки даних, починаючи від введення параметрів та закінчуючи аналізом 
результатів. Розроблений алгоритм є ефективним, гнучким та дозволяє 
реалізувати всі необхідні функції моніторингу локальної мережі. 
 
33 
Таблиця 3.2 
Основні параметри системи моніторингу 
Параметри Значення 
Діапазон IP 192.168.0.1 - 192.168.0.254 
Інтервал перевірки 5 сек 
Кількість потоків 50 
Час очікування 700 мс 
Скановані порти 21, 22, 80, 443, 3389 
 
Наведені параметри визначають режим роботи системи та впливають 
на її продуктивність і точність отриманих результатів. 
3.3 Програмна реалізація системи 
Програмна реалізація системи моніторингу локальної комп’ютерної 
мережі виконана з використанням мови програмування Python. Обрана мова 
дозволила реалізувати всі необхідні функції системи, забезпечивши 
простоту розробки та зручність подальшого використання. Програма 
реалізована у вигляді настільного додатку з графічним інтерфейсом 
користувача. 
Для створення інтерфейсу використано бібліотеку tkinter, яка входить 
до стандартного набору Python [9]. Інтерфейс програми містить елементи 
керування, що дозволяють задавати параметри моніторингу, запускати 
сканування та переглядати результати. Це забезпечує зручну взаємодію 
користувача з системою. У верхній частині вікна розташовані поля введення, 
які дозволяють користувачу задати базову IP-адресу, діапазон хостів та 
інтервал перевірки. 
Додатково реалізовано можливість задавати кількість потоків, що 
дозволяє керувати продуктивністю системи. Кнопки керування 
забезпечують запуск сканування, активацію режиму моніторингу, зупинку 
роботи та очищення таблиці. У центральній частині інтерфейсу розташована 
таблиця, яка відображає результати моніторингу. 
34 
У таблиці відображаються такі параметри, як IP-адреса, статус вузла, 
час відповіді, ім’я пристрою, відкриті порти та час перевірки. Це дозволяє 
отримати повну інформацію про стан мережі. Для підвищення зручності 
сприйняття інформації у системі реалізовано кольорову індикацію. 
Доступні вузли відображаються зеленим кольором, тоді як недоступні 
– червоним. Це дозволяє швидко визначити стан мережі без необхідності 
детального аналізу даних. 
Система підтримує фільтрацію результатів, що дозволяє відображати 
лише активні вузли або виконувати пошук за певними параметрами. Крім 
того, реалізовано сортування даних, що спрощує роботу з великою кількістю 
записів. 
Таким чином, інтерфейс системи є зручним та інформативним. 
Основною функцією системи є сканування мережі, яке здійснюється за 
допомогою ICMP-запитів. Для кожної IP-адреси виконується перевірка 
доступності з використанням команди ping. 
У разі отримання відповіді визначається час затримки, що дозволяє 
оцінити якість з’єднання. Для доступних вузлів додатково виконується 
сканування портів. Це здійснюється шляхом встановлення TCP-з’єднання з 
визначеними портами та аналізу результату. Якщо порт відкритий, він 
відображається у результатах сканування. Для підвищення продуктивності 
системи використовується багатопотоковий підхід. 
Кожен потік виконує перевірку окремого вузла, що дозволяє значно 
скоротити час сканування. Управління потоками здійснюється за допомогою 
відповідних механізмів синхронізації, що забезпечує стабільну роботу 
системи. Результати роботи потоків передаються до основного модуля 
обробки, де вони зберігаються та відображаються у таблиці. Такий підхід 
дозволяє ефективно використовувати ресурси системи та забезпечує високу 
швидкість роботи програми.  
35 
 
Рис. 3.3. Схема процесу моніторингу мережі 
 
На рисунку 3.3 представлено процес моніторингу локальної мережі, 
який виконується у циклічному режимі, при цьому система здійснює 
сканування мережі, отримує результати, виконує їх аналіз та оновлює 
інформацію у таблиці, а також записує події у журнал, після чого через 
заданий інтервал часу процес повторюється, що дозволяє забезпечити 
постійний контроль стану мережі. 
Додатково у системі реалізовано функції ведення журналу подій та 
формування статистики. Журнал подій містить інформацію про роботу 
системи, зокрема запуск та зупинку моніторингу, зміну стану вузлів та 
результати сканування. Це дозволяє відстежувати роботу системи та 
аналізувати її поведінку у часі. Модуль статистики забезпечує узагальнення 
отриманих даних та відображення ключових показників. До таких 
показників належать кількість активних та неактивних вузлів, середній час 
відповіді та кількість відкритих портів. Система також підтримує експорт 
результатів у формати CSV, JSON та текстові звіти [9]. Це дозволяє 
36 
використовувати отримані дані у сторонніх програмних засобах та 
виконувати їх подальший аналіз. 
Таким чином, програмна реалізація системи забезпечує виконання 
всіх необхідних функцій моніторингу та відповідає сучасним вимогам до 
програмного забезпечення. 
Таблиця 3.3 
Статистичні показники роботи системи 
Показник Значення 
Кількість вузлів 254 
Активні вузли 18 
Неактивні вузли 236 
Середній час відповіді 2.4 мс 
Відкриті порти 12 
 
Статистичні дані дозволяють оцінити загальний стан мережі та 
визначити рівень її завантаження і активності. 
3.4 Реалізація функцій моніторингу та аналізу мережі 
Реалізація функцій моніторингу є основою роботи розробленої 
системи та забезпечує отримання інформації про стан локальної 
комп’ютерної мережі. У даній системі реалізовано комплекс функцій, які 
дозволяють виконувати перевірку доступності вузлів, аналізувати їх 
характеристики та відстежувати зміни у мережі. 
Основною функцією є перевірка доступності вузлів за допомогою 
ICMP-запитів. 
Для кожної IP-адреси виконується надсилання запиту, після чого 
система очікує відповідь. У разі отримання відповіді вузол вважається 
доступним, а у разі її відсутності – недоступним. 
Це дозволяє визначити поточний стан мережевих пристроїв. 
Важливою функцією системи є визначення часу відповіді вузлів. Час 
затримки вимірюється як інтервал між надсиланням запиту та отриманням 
37 
відповіді. Цей параметр дозволяє оцінити якість мережевого з’єднання та 
виявити можливі проблеми. 
Високі значення затримки можуть свідчити про перевантаження 
мережі або несправності обладнання. Таким чином, аналіз часу відповіді є 
важливим елементом моніторингу. Отримані значення використовуються 
для формування статистичних показників. Додатково у системі реалізовано 
функцію сканування портів, яка дозволяє визначити, які мережеві служби 
доступні на вузлі. Сканування здійснюється шляхом встановлення TCP-
з’єднання з певними портами. 
У разі успішного встановлення з’єднання порт вважається відкритим. 
Ця інформація дозволяє оцінити функціональні можливості пристрою. 
Наприклад, наявність відкритого порту 80 може свідчити про роботу веб-
сервера. Таким чином, сканування портів значно розширює можливості 
аналізу мережі. Для підвищення ефективності роботи системи 
використовується багатопотоковий режим. Це дозволяє одночасно 
виконувати перевірку великої кількості вузлів. У результаті значно 
скорочується час виконання сканування. 
Багатопотоковий підхід є особливо ефективним у мережах з великою 
кількістю пристроїв. Кожен потік працює незалежно, що забезпечує високу 
продуктивність системи. Отримані результати об’єднуються та передаються 
до модуля обробки. 
У системі реалізовано режим безперервного моніторингу, який 
дозволяє виконувати регулярні перевірки стану мережі. У цьому режимі 
система автоматично повторює процес сканування через заданий інтервал 
часу.Це дає можливість відстежувати зміни у реальному часі. У разі зміни 
стану вузла система фіксує це у журналі подій. Це дозволяє оперативно 
реагувати на появу або зникнення пристроїв. Таким чином, система може 
використовуватися для постійного контролю мережі. 
38 
Важливою складовою системи є модуль аналізу результатів, який 
дозволяє узагальнювати отримані дані. 
Система формує статистичні показники, такі як кількість доступних 
та недоступних вузлів, середній час відповіді та кількість відкритих портів. 
Це дозволяє оцінити загальний стан мережі. 
Крім того, реалізовано функцію ведення журналу подій, що забезпечує 
збереження інформації про роботу системи. 
Журнал містить записи про зміну стану вузлів та виконання операцій. 
Система також підтримує експорт результатів у різні формати, що 
дозволяє виконувати подальший аналіз. 
Таким чином, реалізовані функції забезпечують повний цикл 
моніторингу та аналізу локальної мережі. 
У процесі реалізації системи особлива увага була приділена 
забезпеченню стабільності роботи програмного забезпечення, при цьому 
враховувалися особливості функціонування локальних комп’ютерних 
мереж та можливі варіанти поведінки вузлів у процесі моніторингу. 
Розроблена система демонструє стійкість до різних умов роботи, 
зокрема до відсутності відповіді від вузлів, нестабільного мережевого 
з’єднання та змін у складі мережі, що дозволяє використовувати її у 
реальних умовах експлуатації. 
У процесі тестування було встановлено, що система коректно 
обробляє великі обсяги даних, що виникають при скануванні значної 
кількості IP-адрес, при цьому результати обробки відображаються у 
зручному для користувача вигляді.Особливу роль відіграє можливість 
гнучкого налаштування параметрів моніторингу, що дозволяє адаптувати 
систему під різні умови використання, змінюючи діапазон адрес, кількість 
потоків та інтервал перевірки. 
39 
Крім того, система забезпечує можливість подальшого аналізу 
отриманих результатів, що досягається за рахунок реалізації функцій 
експорту даних та формування статистики. 
Важливою перевагою є також можливість візуального контролю стану 
мережі, що значно спрощує процес аналізу та дозволяє швидко виявляти 
проблемні вузли. 
Таким чином, розроблений програмний засіб є ефективним 
інструментом для моніторингу локальних комп’ютерних мереж та може 
бути використаний у практичній діяльності. 
3.5 Аналіз результатів роботи системи 
Аналіз результатів роботи розробленої системи моніторингу 
локальної комп’ютерної мережі є важливим етапом, який дозволяє оцінити 
ефективність реалізованих алгоритмів та визначити рівень їх відповідності 
поставленим задачам, при цьому результати тестування системи були 
отримані у процесі сканування реальної локальної мережі з використанням 
різних параметрів моніторингу. У ході виконання сканування система 
здійснює перевірку доступності вузлів у заданому діапазоні IP-адрес, що 
дозволяє отримати інформацію про активні та неактивні пристрої, при 
цьому результати відображаються у вигляді таблиці, що значно спрощує їх 
аналіз та сприйняття користувачем. 
Отримані результати показують, що система коректно визначає стан 
вузлів та забезпечує достовірність отриманих даних, що підтверджує 
правильність реалізації алгоритму сканування. 
У процесі тестування було встановлено, що система здатна ефективно 
працювати як з невеликими діапазонами IP-адрес, так і з повним діапазоном 
локальної мережі, що включає до 254 вузлів, при цьому використання 
багатопотокового підходу дозволяє значно скоротити час виконання 
сканування навіть при великій кількості пристроїв. 
40 
Аналіз отриманих даних показав, що час відповіді вузлів може 
змінюватися залежно від навантаження мережі та технічних характеристик 
пристроїв, що дозволяє використовувати цей параметр для оцінки якості 
з’єднання. 
Крім того, система коректно обробляє ситуації, коли вузли не 
відповідають на запити, що дозволяє виявляти недоступні пристрої та 
аналізувати причини їх недоступності. Важливим результатом роботи 
системи є можливість визначення відкритих портів на доступних вузлах, що 
дозволяє отримати додаткову інформацію про функціональні можливості 
пристроїв та визначити, які мережеві служби є активними. 
Отримані дані можуть бути використані для аналізу стану мережі, а 
також для виявлення потенційних вразливостей, що підвищує практичну 
цінність розробленого програмного засобу. Завдяки наявності графічного 
інтерфейсу користувач має можливість швидко оцінити результати 
сканування, використовуючи кольорову індикацію та структуроване 
представлення даних. 
Додатково система забезпечує можливість ведення журналу подій, у 
якому фіксуються всі основні зміни стану мережі, що дозволяє відстежувати 
динаміку роботи мережевої інфраструктури та аналізувати поведінку вузлів 
у часі. Функція формування статистики дозволяє узагальнювати отримані 
результати та визначати ключові показники, такі як кількість активних 
вузлів, середній час відповіді та загальний стан мережі. 
Можливість експорту результатів у формати CSV, JSON та текстові 
звіти дозволяє виконувати подальший аналіз отриманих даних у сторонніх 
програмних засобах. Проведений аналіз результатів роботи системи 
підтверджує її ефективність та доцільність використання для моніторингу 
локальних комп’ютерних мереж, при цьому система забезпечує достатній 
рівень інформативності та дозволяє отримувати актуальні дані про стан 
мережі. 
41 
Отримані результати можуть бути використані для оцінки 
продуктивності мережі, виявлення проблем у її роботі та прийняття рішень 
щодо її оптимізації. 
Таким чином, розроблений програмний засіб успішно виконує 
поставлені задачі та може бути використаний у практичній діяльності для 
контролю стану локальних мереж. 
Практичне застосування розробленої системи моніторингу локальної 
комп’ютерної мережі охоплює широкий спектр сфер діяльності, у яких 
необхідно здійснювати контроль стану мережевої інфраструктури та 
забезпечувати її стабільну роботу. 
Система може бути використана у навчальних закладах для контролю 
роботи комп’ютерних класів, при цьому вона дозволяє визначати 
доступність робочих станцій, аналізувати їх стан та своєчасно виявляти 
проблеми у роботі мережі, що значно спрощує процес адміністрування. У 
корпоративному середовищі система може застосовуватися для моніторингу 
внутрішніх мереж підприємств, де важливо забезпечити безперервну роботу 
інформаційних систем, при цьому можливість відстеження змін у стані 
вузлів дозволяє оперативно реагувати на виникнення несправностей. 
У домашніх мережах система може використовуватися для контролю 
підключених пристроїв, що дозволяє визначити, які пристрої активні у 
мережі, а також оцінити їх стан та характеристики з’єднання. Крім того, 
система може бути використана для виявлення несанкціонованих 
підключень, що підвищує рівень безпеки мережі та дозволяє своєчасно 
реагувати на потенційні загрози. 
Важливою перевагою є можливість використання системи без 
спеціальної підготовки, що робить її доступною для широкого кола 
користувачів. Таким чином, розроблений програмний засіб має значну 
практичну цінність та може бути використаний у різних сферах для 
вирішення задач моніторингу локальних комп’ютерних мереж. У процесі 
42 
дослідження особливу увагу було приділено питанням надійності та 
стабільності роботи розробленої системи моніторингу, оскільки ці 
характеристики є критично важливими для програмних засобів, що 
використовуються у мережевому середовищі. 
Було встановлено, що система здатна працювати у різних умовах, 
включаючи нестабільне мережеве з’єднання та змінну кількість активних 
вузлів, при цьому результати роботи залишаються коректними та 
відображають актуальний стан мережі. Важливим аспектом є обробка 
ситуацій, коли вузли не відповідають на запити, що може бути пов’язано з 
налаштуваннями безпеки або тимчасовими збоями у роботі мережі, при 
цьому система коректно обробляє такі випадки та відображає їх у 
результатах. 
 
Крім того, було забезпечено стабільну роботу багатопотокового 
механізму, що дозволяє уникнути зависань та перевантаження системи 
навіть при великій кількості одночасних перевірок. Таким чином, можна 
зробити висновок, що розроблений програмний засіб характеризується 
достатнім рівнем надійності та може бути використаний у практичній 
діяльності. 
3.6 Оцінка ефективності та перспективи розвитку системи 
Оцінка ефективності розробленої системи моніторингу локальної 
комп’ютерної мережі базується на аналізі її функціональних можливостей, 
швидкодії, зручності використання та точності отриманих результатів, при 
цьому проведені експериментальні дослідження дозволили встановити, що 
система здатна забезпечувати стабільну роботу у різних умовах 
експлуатації. 
У процесі тестування було встановлено, що система ефективно 
виконує перевірку доступності вузлів у широкому діапазоні IP-адрес, що 
43 
дозволяє використовувати її як у невеликих, так і у більш розгалужених 
локальних мережах, при цьому використання багатопотокового підходу 
забезпечує високу швидкість виконання сканування навіть при великій 
кількості пристроїв. 
Важливим показником ефективності системи є точність отриманих 
результатів, яка досягається за рахунок використання перевірених методів 
моніторингу, зокрема ICMP-запитів та сканування TCP-портів, що дозволяє 
отримувати достовірну інформацію про стан вузлів та їх функціональні 
можливості. 
Система коректно визначає як доступні, так і недоступні вузли, при 
цьому враховується можливість відсутності відповіді через налаштування 
безпеки, що дозволяє уникнути помилкових висновків щодо стану мережі. 
Отримані результати можуть використовуватися для аналізу якості 
мережевого з’єднання, що підвищує практичну цінність розробленого 
програмного засобу. Зручність використання системи забезпечується 
наявністю графічного інтерфейсу, який дозволяє користувачу швидко 
налаштовувати параметри моніторингу та отримувати результати у 
наочному вигляді, при цьому використання таблиць, кольорової індикації та 
вкладок значно спрощує процес аналізу даних. 
Система не потребує складного встановлення або налаштування, що 
робить її доступною для широкого кола користувачів, включаючи тих, хто не 
має глибоких знань у сфері мережевих технологій. 
Це є важливою перевагою порівняно з існуючими складними 
системами моніторингу, які потребують значних ресурсів та спеціальних 
знань. 
До основних переваг розробленої системи можна віднести простоту 
використання, високу швидкість роботи, наявність багатопотокового 
режиму, можливість визначення відкритих портів, ведення журналу подій та 
44 
формування статистичних даних, що у сукупності забезпечує достатній 
рівень функціональності для виконання задач моніторингу. 
Разом з тим система має певні обмеження, які пов’язані з 
використанням базових методів моніторингу, зокрема відсутність глибокого 
аналізу мережевого трафіку та обмежені можливості інтеграції з іншими 
системами. 
Проте ці обмеження не є критичними для локальних мереж невеликого 
та середнього масштабу. Перспективи розвитку системи пов’язані з 
розширенням її функціональних можливостей, зокрема можливістю 
додавання підтримки протоколу SNMP для отримання більш детальної 
інформації про стан мережевого обладнання, а також реалізацією аналізу 
мережевого трафіку. Крім того, можливим є розширення інтерфейсу 
користувача, зокрема додавання графіків та діаграм для візуалізації 
статистичних даних, що дозволить підвищити інформативність системи. 
Іншим напрямком розвитку є реалізація віддаленого доступу до 
системи, що дозволить здійснювати моніторинг мережі через веб-інтерфейс. 
Таким чином, проведена оцінка ефективності показує, що розроблена 
система є надійним та ефективним інструментом для моніторингу 
локальних комп’ютерних мереж, при цьому вона поєднує простоту 
використання та достатній рівень функціональності, що дозволяє 
використовувати її у практичній діяльності. Реалізовані у системі функції 
забезпечують повний цикл моніторингу, включаючи збір, обробку та аналіз 
даних, що підтверджує доцільність її розробки.  
Подальший розвиток розробленої системи моніторингу локальної 
комп’ютерної мережі може бути спрямований на розширення її 
функціональних можливостей та покращення ефективності роботи. Одним 
із напрямів розвитку є інтеграція додаткових методів аналізу мережевого 
трафіку, що дозволить отримувати більш детальну інформацію про роботу 
мережі та виявляти складніші проблеми. Також можливим є впровадження 
45 
підтримки додаткових протоколів моніторингу, таких як SNMP, що 
дозволить отримувати інформацію безпосередньо з мережевого обладнання. 
Окрему увагу можна приділити покращенню графічного інтерфейсу 
користувача, зокрема реалізації більш наочного відображення результатів у 
вигляді графіків та діаграм. Крім того, система може бути доповнена 
можливістю автоматичного сповіщення користувача про зміни у стані 
мережі, що підвищить її практичну цінність. Таким чином, розроблений 
програмний засіб має значний потенціал для подальшого розвитку та 
вдосконалення. 
Економічна доцільність розробки системи моніторингу локальної 
комп’ютерної мережі полягає у зменшенні витрат на обслуговування 
мережевої інфраструктури та підвищенні ефективності роботи системи в 
цілому. У сучасних умовах використання складних програмних продуктів 
для моніторингу мережі часто супроводжується значними витратами, 
пов’язаними з придбанням ліцензій, налаштуванням та обслуговуванням 
таких систем, при цьому для невеликих локальних мереж використання 
подібних рішень є економічно недоцільним. 
Розроблений програмний засіб є безкоштовним у використанні, не 
потребує додаткових витрат на ліцензування та може бути встановлений на 
стандартному комп’ютері без необхідності використання спеціалізованого 
обладнання. 
Використання системи дозволяє зменшити час, необхідний для 
виявлення несправностей у мережі, що, у свою чергу, знижує витрати на її 
обслуговування та підвищує продуктивність роботи. Крім того, 
автоматизація процесу моніторингу дозволяє зменшити навантаження на 
персонал, що також має позитивний економічний ефект. Таким чином, 
впровадження розробленої системи є економічно доцільним та дозволяє 
оптимізувати витрати на обслуговування локальної комп’ютерної мережі. 
46 
Додатково слід зазначити, що використання розробленого 
програмного засобу не потребує спеціального навчання персоналу, що 
дозволяє зменшити витрати на підготовку кадрів та впровадження системи 
у робочий процес. Також відсутність необхідності у придбанні дорогого 
програмного забезпечення дозволяє значно знизити початкові витрати на 
організацію моніторингу мережі. У випадку використання комерційних 
систем витрати можуть включати не лише придбання ліцензії, але й оплату 
технічної підтримки, що робить їх менш привабливими для невеликих 
організацій. 
Розроблений програмний засіб дозволяє уникнути таких витрат, 
забезпечуючи при цьому достатній рівень функціональності для вирішення 
задач моніторингу. Таким чином, економічний ефект від впровадження 
системи проявляється у зменшенні витрат та підвищенні ефективності 
роботи мережі. 
Висновки до розділу 3 
У третьому розділі було виконано розробку системи моніторингу 
локальної комп’ютерної мережі, яка реалізує основні функції перевірки 
доступності вузлів, сканування портів та безперервного моніторингу. 
Було створено програмний засіб з графічним інтерфейсом 
користувача, що забезпечує зручну взаємодію з системою та відображення 
результатів у наочному вигляді. 
Застосування багатопотокового підходу дозволило значно підвищити 
швидкість обробки даних та ефективність роботи системи. 
Проведене тестування підтвердило працездатність розробленого 
програмного засобу та його відповідність поставленим вимогам. Отримані 
результати свідчать про доцільність використання системи для моніторингу 
локальних комп’ютерних мереж.  
47 
У процесі розробки програмного засобу було враховано основні 
вимоги до систем моніторингу, зокрема швидкодію, зручність використання 
та інформативність отриманих результатів. Реалізація графічного 
інтерфейсу дозволила забезпечити інтуїтивно зрозумілу взаємодію 
користувача з системою, що значно підвищує її практичну цінність. 
Використання багатопотокового підходу дало змогу суттєво скоротити час 
обробки даних, що є особливо важливим при роботі з великими діапазонами 
IP-адрес. 
Отримані результати тестування підтвердили, що система здатна 
ефективно виконувати поставлені задачі та може бути використана у 
реальних умовах експлуатації. Таким чином, розроблений програмний засіб 
відповідає сучасним вимогам та може бути використаний для моніторингу 
локальних комп’ютерних мереж.  
 
48 
ВИСНОВКИ 
У результаті виконання кваліфікаційної роботи було розроблено 
систему моніторингу локальної комп’ютерної мережі, яка забезпечує 
виконання основних функцій контролю стану мережевих вузлів, аналізу їх 
доступності та визначення характеристик з’єднання, при цьому поставлені 
задачі були повністю реалізовані у процесі розробки програмного 
забезпечення. 
У ході виконання роботи було проведено аналіз теоретичних основ 
моніторингу комп’ютерних мереж, досліджено сучасні методи та засоби 
контролю стану мережевої інфраструктури, а також виконано порівняльний 
аналіз існуючих програмних рішень, що дозволило визначити їх переваги та 
недоліки. 
На основі проведеного аналізу було обґрунтовано вибір методів 
моніторингу, зокрема використання ICMP-запитів для визначення 
доступності вузлів та сканування TCP-портів для аналізу функціональних 
можливостей пристроїв. 
Крім того, було обґрунтовано вибір мови програмування Python, яка 
забезпечила можливість реалізації всіх необхідних функцій системи та 
спростила процес розробки програмного забезпечення. 
У процесі виконання роботи було розроблено алгоритм 
функціонування системи, який забезпечує повний цикл моніторингу, 
починаючи від введення параметрів користувачем та закінчуючи аналізом 
отриманих результатів, при цьому реалізовано багатопотоковий підхід, що 
дозволяє значно підвищити продуктивність системи. 
Розроблена система має графічний інтерфейс, що забезпечує зручність 
використання та дозволяє користувачу швидко отримувати інформацію про 
стан мережі, при цьому реалізовано функції відображення результатів у 
49 
табличному вигляді, ведення журналу подій, формування статистики та 
експорту даних у різні формати. 
Проведене тестування показало, що система коректно виконує 
перевірку доступності вузлів, визначає час відповіді та виявляє відкриті 
порти, що підтверджує ефективність реалізованих алгоритмів та доцільність 
використання розробленого програмного засобу. 
Отримані результати можуть бути використані для аналізу стану 
локальної мережі, виявлення проблем у її роботі та прийняття рішень щодо 
її оптимізації, що визначає практичну значущість виконаної роботи. 
Таким чином, мета кваліфікаційної роботи досягнута, а розроблена 
система може бути використана як ефективний інструмент моніторингу 
локальних комп’ютерних мереж, при цьому перспективи її розвитку 
пов’язані з розширенням функціональних можливостей та інтеграцією з 
іншими інформаційними системами. 
 
50 
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 
1. Таненбаум Е. Комп’ютерні мережі. – К.: Вільямс, 2018. – 960 с. 
2. Олійник А.О. Комп’ютерні мережі: навчальний посібник. – К.: 
Центр учбової літератури, 2019. – 312 с. 
3. Козловський В.В. Основи комп’ютерних мереж. – Львів: Новий 
Світ, 2020. – 256 с. 
4. Stallings W. Data and Computer Communications. – Pearson, 2017. – 
912 p. 
5. Kurose J., Ross K. Computer Networking: A Top-Down Approach. – 
Pearson, 2017. – 864 p. 
6. Офіційна документація Python. – Режим доступу: 
https://docs.python.org 
7. Документація бібліотеки tkinter. – Режим доступу: 
https://docs.python.org/3/library/tkinter.html 
8. Документація модуля socket. – Режим доступу: 
https://docs.python.org/3/library/socket.html 
9. Документація модуля threading. – Режим доступу: 
https://docs.python.org/3/library/threading.html 
10. Документація subprocess. – Режим доступу: 
https://docs.python.org/3/library/subprocess.html 
11. Wireshark User Guide. – Режим доступу: 
https://www.wireshark.org/docs/ 
12. Zabbix Documentation. – Режим доступу: 
https://www.zabbix.com/documentation 
13. Nagios Core Documentation. – Режим доступу: 
https://www.nagios.org/documentation/ 
14. PRTG Network Monitor Manual. – Режим доступу: 
https://www.paessler.com/manuals/prtg 
51 
15. RFC 792 – Internet Control Message Protocol (ICMP) 
16. RFC 793 – Transmission Control Protocol (TCP) 
17. RFC 2616 – Hypertext Transfer Protocol (HTTP) 
18. Microsoft Documentation: Ping Command. – Режим доступу: 
https://learn.microsoft.com 
19. Основи мережевих технологій TCP/IP. – Режим доступу: 
https://www.cisco.com 
20. SNMP Protocol Specification. – Режим доступу: https://www.ietf.org 
21. Таненбаум Е., Везеролл Д. Комп’ютерні мережі. 5-те вид. Київ : 
Вільямс, 2020. 960 с. 
22. Оліфер В. Г., Оліфер Н. А. Комп’ютерні мережі. Принципи, 
технології, протоколи. Київ : Пітер, 2021. 1008 с. 
23. Stallings W. Data and Computer Communications. 11th ed. Pearson, 
2020. 880 p. 
24. Kurose J., Ross K. Computer Networking: A Top-Down Approach. 8th 
ed. Pearson, 2021. 864 p. 
25. Лавріщева К. М. Програмна інженерія. Київ : Академперіодика, 
2019. 319 с. 
26. Саммерфілд М. Python. Найкращі практики програмування. Харків 
: Ранок, 2021. 544 с. 
27. Lutz M. Learning Python. 5th ed. O’Reilly Media, 2019. 1648 p. 
28. Sweigart A. Automate the Boring Stuff with Python. 2nd ed. No Starch 
Press, 2020. 592 p. 
29. Python Software Foundation. Python Documentation. URL: 
https://docs.python.org/3/ 
30. Case J., Fedor M., Schoffstall M. Simple Network Management 
Protocol (SNMP). RFC 1157. 1990. 
31. Postel J. Internet Control Message Protocol. RFC 792. 1981. 
32. Comer D. Internetworking with TCP/IP. Vol. 1. Pearson, 2021. 656 p. 
 
52 
ДОДАТОК А 
Програмний код системи моніторингу 
import subprocess 
import time 
import socket 
import csv 
import json 
import threading 
from queue import Queue, Empty 
from datetime import datetime 
import tkinter as tk 
from tkinter import ttk, messagebox, filedialog 
 
 
COMMON_PORTS = [21, 22, 23, 53, 80, 135, 139, 443, 445, 3389] 
 
 
class NetworkMonitorApp: 
    def __init__(self, root): 
        self.root = root 
        self.root.title("Система моніторингу локальної комп'ютерної 
мережі") 
        self.root.geometry("1200x760") 
 
        self.monitoring = False 
        self.stop_scan = False 
        self.results = [] 
        self.previous_status = {} 
        self.scan_queue = Queue() 
        self.active_threads = [] 
        self.current_scan_total = 0 
        self.current_scan_done = 0 
 
        self.create_widgets() 
53 
        self.process_queue() 
 
    def create_widgets(self): 
        self.root.columnconfigure(0, weight=1) 
        self.root.rowconfigure(2, weight=1) 
 
        top = tk.LabelFrame(self.root, text="Параметри моніторингу") 
        top.grid(row=0, column=0, sticky="ew", padx=10, pady=10) 
        for i in range(10): 
            top.columnconfigure(i, weight=1) 
 
        tk.Label(top, text="Базовий IP:").grid(row=0, column=0, padx=5, 
pady=5, sticky="w") 
        self.base_ip_entry = tk.Entry(top, width=16) 
        self.base_ip_entry.insert(0, "192.168.0") 
        self.base_ip_entry.grid(row=0, column=1, padx=5, pady=5, 
sticky="ew") 
 
        tk.Label(top, text="Початковий хост:").grid(row=0, column=2, 
padx=5, pady=5, sticky="w") 
        self.start_host_entry = tk.Entry(top, width=8) 
        self.start_host_entry.insert(0, "1") 
        self.start_host_entry.grid(row=0, column=3, padx=5, pady=5, 
sticky="ew") 
 
        tk.Label(top, text="Кінцевий хост:").grid(row=0, column=4, padx=5, 
pady=5, sticky="w") 
        self.end_host_entry = tk.Entry(top, width=8) 
        self.end_host_entry.insert(0, "50") 
        self.end_host_entry.grid(row=0, column=5, padx=5, pady=5, 
sticky="ew") 
 
        tk.Label(top, text="Інтервал (сек):").grid(row=0, column=6, 
padx=5, pady=5, sticky="w") 
        self.interval_entry = tk.Entry(top, width=8) 
        self.interval_entry.insert(0, "10") 
54 
        self.interval_entry.grid(row=0, column=7, padx=5, pady=5, 
sticky="ew") 
 
        tk.Label(top, text="Потоки:").grid(row=0, column=8, padx=5, 
pady=5, sticky="w") 
        self.threads_entry = tk.Entry(top, width=8) 
        self.threads_entry.insert(0, "20") 
        self.threads_entry.grid(row=0, column=9, padx=5, pady=5, 
sticky="ew") 
 
        self.scan_ports_var = tk.BooleanVar(value=True) 
        tk.Checkbutton(top, text="Перевіряти популярні порти", 
variable=self.scan_ports_var).grid( 
            row=1, column=0, columnspan=3, padx=5, pady=5, sticky="w" 
        ) 
 
        self.show_only_online_var = tk.BooleanVar(value=False) 
        tk.Checkbutton(top, text="Показувати тільки ONLINE", 
variable=self.show_only_online_var, 
                       command=self.refresh_table).grid( 
            row=1, column=3, columnspan=3, padx=5, pady=5, sticky="w" 
        ) 
 
        tk.Label(top, text="Пошук IP / hostname:").grid(row=1, column=6, 
padx=5, pady=5, sticky="w") 
        self.search_entry = tk.Entry(top) 
        self.search_entry.grid(row=1, column=7, columnspan=3, padx=5, 
pady=5, sticky="ew") 
        self.search_entry.bind("<KeyRelease>", lambda event: 
self.refresh_table()) 
 
        buttons = tk.Frame(self.root) 
        buttons.grid(row=1, column=0, sticky="ew", padx=10, pady=(0, 10)) 
 
        tk.Button(buttons, text="Сканувати", width=16, 
command=self.scan_once).pack(side="left", padx=5) 
55 
        tk.Button(buttons, text="Почати моніторинг", width=18, 
command=self.start_monitoring).pack(side="left", padx=5) 
        tk.Button(buttons, text="Зупинити", width=12, 
command=self.stop_monitoring).pack(side="left", padx=5) 
        tk.Button(buttons, text="Очистити таблицю", width=16, 
command=self.clear_table).pack(side="left", padx=5) 
        tk.Button(buttons, text="Експорт CSV", width=14, 
command=self.save_to_csv).pack(side="left", padx=5) 
        tk.Button(buttons, text="Експорт JSON", width=14, 
command=self.save_to_json).pack(side="left", padx=5) 
        tk.Button(buttons, text="Звіт TXT", width=12, 
command=self.save_report).pack(side="left", padx=5) 
 
        center = ttk.Notebook(self.root) 
        center.grid(row=2, column=0, sticky="nsew", padx=10, pady=(0, 10)) 
 
        self.tab_results = tk.Frame(center) 
        self.tab_stats = tk.Frame(center) 
        self.tab_logs = tk.Frame(center) 
 
        center.add(self.tab_results, text="Результати") 
        center.add(self.tab_stats, text="Статистика") 
        center.add(self.tab_logs, text="Журнал подій") 
 
        self.create_results_tab() 
        self.create_stats_tab() 
        self.create_logs_tab() 
 
        bottom = tk.Frame(self.root) 
        bottom.grid(row=3, column=0, sticky="ew", padx=10, pady=(0, 10)) 
        bottom.columnconfigure(0, weight=1) 
 
        self.status_label = tk.Label(bottom, text="Статус: готово до 
роботи", anchor="w") 
        self.status_label.grid(row=0, column=0, sticky="ew") 
 
56 
        self.progress = ttk.Progressbar(bottom, mode="determinate") 
        self.progress.grid(row=1, column=0, sticky="ew", pady=(5, 0)) 
 
    def create_results_tab(self): 
        self.tab_results.columnconfigure(0, weight=1) 
        self.tab_results.rowconfigure(0, weight=1) 
 
        columns = ("ip", "status", "delay", "hostname", "ports", 
"last_seen") 
        self.tree = ttk.Treeview(self.tab_results, columns=columns, 
show="headings") 
        self.tree.grid(row=0, column=0, sticky="nsew") 
 
        scrollbar = ttk.Scrollbar(self.tab_results, orient="vertical", 
command=self.tree.yview) 
        scrollbar.grid(row=0, column=1, sticky="ns") 
        self.tree.configure(yscrollcommand=scrollbar.set) 
 
        self.tree.heading("ip", text="IP-адреса") 
        self.tree.heading("status", text="Статус") 
        self.tree.heading("delay", text="Час відповіді (мс)") 
        self.tree.heading("hostname", text="Ім'я пристрою") 
        self.tree.heading("ports", text="Відкриті порти") 
        self.tree.heading("last_seen", text="Час перевірки") 
 
        self.tree.column("ip", width=120) 
        self.tree.column("status", width=90) 
        self.tree.column("delay", width=130) 
        self.tree.column("hostname", width=220) 
        self.tree.column("ports", width=220) 
        self.tree.column("last_seen", width=170) 
 
        self.tree.tag_configure("online", background="#d9f2d9") 
        self.tree.tag_configure("offline", background="#f8d7da") 
 
57 
    def create_stats_tab(self): 
        for i in range(2): 
            self.tab_stats.columnconfigure(i, weight=1) 
 
        self.stats_text = tk.Text(self.tab_stats, height=20) 
        self.stats_text.pack(fill="both", expand=True, padx=10, pady=10) 
 
    def create_logs_tab(self): 
        self.log_text = tk.Text(self.tab_logs, height=20) 
        self.log_text.pack(fill="both", expand=True, padx=10, pady=10) 
 
    def log_message(self, message): 
        timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") 
        line = f"[{timestamp}] {message}\n" 
        self.log_text.insert("end", line) 
        self.log_text.see("end") 
        with open("monitor_log.txt", "a", encoding="utf-8") as f: 
            f.write(line) 
 
    def get_inputs(self): 
        base_ip = self.base_ip_entry.get().strip() 
        try: 
            start_host = int(self.start_host_entry.get().strip()) 
            end_host = int(self.end_host_entry.get().strip()) 
            interval = int(self.interval_entry.get().strip()) 
            threads_count = int(self.threads_entry.get().strip()) 
        except ValueError: 
            messagebox.showerror("Помилка", "Числові поля мають містити 
лише числа.") 
            return None 
 
        if start_host < 1 or end_host > 254 or start_host > end_host: 
            messagebox.showerror("Помилка", "Діапазон хостів має бути в 
межах 1..254.") 
58 
            return None 
 
        if threads_count < 1 or threads_count > 100: 
            messagebox.showerror("Помилка", "Кількість потоків має бути в 
межах 1..100.") 
            return None 
 
        if not base_ip: 
            messagebox.showerror("Помилка", "Введіть базовий IP.") 
            return None 
 
        return base_ip, start_host, end_host, interval, threads_count 
 
    def ping_ip(self, ip): 
        try: 
            start = time.time() 
            result = subprocess.run( 
                ["ping", "-n", "1", "-w", "700", ip], 
                stdout=subprocess.DEVNULL, 
                stderr=subprocess.DEVNULL 
            ) 
            delay = round((time.time() - start) * 1000, 2) 
            if result.returncode == 0: 
                return True, delay 
            return False, None 
        except Exception: 
            return False, None 
 
    def get_hostname(self, ip): 
        try: 
            return socket.gethostbyaddr(ip)[0] 
        except Exception: 
            return "-" 
 
59 
    def scan_common_ports(self, ip, timeout=0.2): 
        open_ports = [] 
        for port in COMMON_PORTS: 
            try: 
                sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
                sock.settimeout(timeout) 
                result = sock.connect_ex((ip, port)) 
                sock.close() 
                if result == 0: 
                    open_ports.append(str(port)) 
            except Exception: 
                pass 
        return ", ".join(open_ports) if open_ports else "-" 
 
    def worker(self, ip): 
        if self.stop_scan: 
            return 
 
        online, delay = self.ping_ip(ip) 
        last_seen = datetime.now().strftime("%Y-%m-%d %H:%M:%S") 
 
        if online: 
            hostname = self.get_hostname(ip) 
            ports = self.scan_common_ports(ip) if 
self.scan_ports_var.get() else "-" 
            status = "ONLINE" 
        else: 
            hostname = "-" 
            ports = "-" 
            delay = "-" 
            status = "OFFLINE" 
 
        result = { 
            "ip": ip, 
60 
            "status": status, 
            "delay": delay, 
            "hostname": hostname, 
            "ports": ports, 
            "last_seen": last_seen 
        } 
        self.scan_queue.put(("result", result)) 
 
    def perform_scan(self): 
        inputs = self.get_inputs() 
        if not inputs: 
            return 
 
        base_ip, start_host, end_host, _, threads_count = inputs 
        self.stop_scan = False 
        self.results = [] 
        self.current_scan_done = 0 
        self.current_scan_total = end_host - start_host + 1 
        self.progress["maximum"] = self.current_scan_total 
        self.progress["value"] = 0 
 
        self.status_label.config(text="Статус: виконується сканування...") 
        self.log_message("Розпочато сканування мережі.") 
 
        ips = [f"{base_ip}.{host}" for host in range(start_host, end_host 
+ 1)] 
 
        def launch_threads(): 
            sem = threading.Semaphore(threads_count) 
            thread_list = [] 
 
            def wrapped_worker(target_ip): 
                with sem: 
                    self.worker(target_ip) 
61 
 
            for ip in ips: 
                if self.stop_scan: 
                    break 
                thread = threading.Thread(target=wrapped_worker, 
args=(ip,), daemon=True) 
                thread_list.append(thread) 
                thread.start() 
 
            for thread in thread_list: 
                thread.join() 
 
            self.scan_queue.put(("done", None)) 
 
        threading.Thread(target=launch_threads, daemon=True).start() 
 
    def process_queue(self): 
        try: 
            while True: 
                event_type, payload = self.scan_queue.get_nowait() 
 
                if event_type == "result": 
                    self.results.append(payload) 
                    self.current_scan_done += 1 
                    self.progress["value"] = self.current_scan_done 
 
                elif event_type == "done": 
                    self.compare_status() 
                    self.refresh_table() 
                    self.update_stats() 
                    online_count = sum(1 for item in self.results if 
item["status"] == "ONLINE") 
                    offline_count = sum(1 for item in self.results if 
item["status"] == "OFFLINE") 
                    self.status_label.config( 
62 
                        text=f"Статус: сканування завершено. ONLINE: 
{online_count}, OFFLINE: {offline_count}" 
                    ) 
                    self.log_message(f"Сканування завершено. ONLINE: 
{online_count}, OFFLINE: {offline_count}") 
 
        except Empty: 
            pass 
        self.root.after(150, self.process_queue) 
 
    def compare_status(self): 
        current_status = {item["ip"]: item["status"] for item in 
self.results} 
 
        if not self.previous_status: 
            for ip, status in current_status.items(): 
                if status == "ONLINE": 
                    self.log_message(f"Виявлено активний пристрій: {ip}") 
            self.previous_status = current_status 
            return 
 
        for ip, status in current_status.items(): 
            old = self.previous_status.get(ip) 
            if old != status: 
                if status == "ONLINE": 
                    self.log_message(f"Пристрій {ip} став доступним.") 
                else: 
                    self.log_message(f"Пристрій {ip} став недоступним.") 
 
        self.previous_status = current_status 
 
    def filtered_results(self): 
        query = self.search_entry.get().strip().lower() 
        data = self.results[:] 
 
63 
        if self.show_only_online_var.get(): 
            data = [item for item in data if item["status"] == "ONLINE"] 
 
        if query: 
            data = [ 
                item for item in data 
                if query in item["ip"].lower() or query in 
item["hostname"].lower() 
            ] 
 
        data.sort(key=lambda x: tuple(int(p) for p in x["ip"].split("."))) 
        return data 
    def refresh_table(self): 
        for row in self.tree.get_children(): 
            self.tree.delete(row) 
 
        for item in self.filtered_results(): 
            tag = "online" if item["status"] == "ONLINE" else "offline" 
            self.tree.insert( 
                "", "end", 
                values=( 
                    item["ip"], 
                    item["status"], 
                    item["delay"], 
                    item["hostname"], 
                    item["ports"], 
                    item["last_seen"] 
                ), 
                tags=(tag,) 
            ) 
 
    def update_stats(self): 
        online = [x for x in self.results if x["status"] == "ONLINE"] 
        offline = [x for x in self.results if x["status"] == "OFFLINE"] 
64 
 
        delays = [] 
        for item in online: 
            try: 
                delays.append(float(item["delay"])) 
            except Exception: 
                pass 
 
        avg_delay = round(sum(delays) / len(delays), 2) if delays else 0 
        min_delay = round(min(delays), 2) if delays else 0 
        max_delay = round(max(delays), 2) if delays else 0 
 
        open_ports_count = 0 
        for item in online: 
            if item["ports"] != "-": 
                open_ports_count += len(item["ports"].split(", ")) 
 
        text = ( 
            "СТАТИСТИКА МОНІТОРИНГУ\n\n" 
            f"Загальна кількість перевірених вузлів: 
{len(self.results)}\n" 
            f"Кількість ONLINE вузлів: {len(online)}\n" 
            f"Кількість OFFLINE вузлів: {len(offline)}\n" 
            f"Середній час відповіді: {avg_delay} мс\n" 
            f"Мінімальний час відповіді: {min_delay} мс\n" 
            f"Максимальний час відповіді: {max_delay} мс\n" 
            f"Кількість виявлених відкритих портів: 
{open_ports_count}\n\n" 
            "Примітка:\n" 
            "Не всі пристрої відповідають на ICMP-запити або відкривають 
порти,\n" 
            "тому фактична кількість підключених пристроїв може бути 
більшою.\n" 
        ) 
 
65 
        self.stats_text.delete("1.0", "end") 
        self.stats_text.insert("1.0", text) 
 
    def scan_once(self): 
        self.perform_scan() 
 
    def monitor_loop(self): 
        if not self.monitoring: 
            return 
        self.perform_scan() 
        inputs = self.get_inputs() 
        if not inputs: 
            self.monitoring = False 
            return 
        _, _, _, interval, _ = inputs 
        self.root.after(interval * 1000, self.monitor_loop) 
 
    def start_monitoring(self): 
        if self.monitoring: 
            return 
        self.monitoring = True 
        self.log_message("Моніторинг запущено.") 
        self.monitor_loop() 
 
    def stop_monitoring(self): 
        self.monitoring = False 
        self.stop_scan = True 
        self.status_label.config(text="Статус: моніторинг зупинено") 
        self.log_message("Моніторинг зупинено.") 
 
    def clear_table(self): 
        self.results = [] 
        self.previous_status = {} 
66 
        self.refresh_table() 
        self.update_stats() 
        self.progress["value"] = 0 
        self.status_label.config(text="Статус: таблицю очищено") 
        self.log_message("Таблицю результатів очищено.") 
 
    def save_to_csv(self): 
        if not self.results: 
            messagebox.showwarning("Увага", "Немає даних для збереження.") 
            return 
 
        filename = filedialog.asksaveasfilename( 
            defaultextension=".csv", 
            filetypes=[("CSV files", "*.csv")], 
            title="Зберегти результати у CSV" 
        ) 
        if not filename: 
            return 
 
        with open(filename, "w", newline="", encoding="utf-8-sig") as f: 
            writer = csv.writer(f, delimiter=";") 
            writer.writerow(["IP-адреса", "Статус", "Час відповіді", "Ім'я 
пристрою", "Відкриті порти", "Час перевірки"]) 
            for item in self.results: 
                writer.writerow([ 
                    item["ip"], item["status"], item["delay"], 
                    item["hostname"], item["ports"], item["last_seen"] 
                ]) 
 
        self.log_message(f"Результати збережено у CSV: {filename}") 
        messagebox.showinfo("Успіх", "Результати успішно збережено у 
CSV.") 
 
    def save_to_json(self): 
67 
        if not self.results: 
            messagebox.showwarning("Увага", "Немає даних для збереження.") 
            return 
 
        filename = filedialog.asksaveasfilename( 
            defaultextension=".json", 
            filetypes=[("JSON files", "*.json")], 
            title="Зберегти результати у JSON" 
        ) 
        if not filename: 
            return 
 
        with open(filename, "w", encoding="utf-8") as f: 
            json.dump(self.results, f, ensure_ascii=False, indent=4) 
 
        self.log_message(f"Результати збережено у JSON: {filename}") 
        messagebox.showinfo("Успіх", "Результати успішно збережено у 
JSON.") 
 
    def save_report(self): 
        if not self.results: 
            messagebox.showwarning("Увага", "Немає даних для формування 
звіту.") 
            return 
 
        filename = filedialog.asksaveasfilename( 
            defaultextension=".txt", 
            filetypes=[("Text files", "*.txt")], 
            title="Зберегти текстовий звіт" 
        ) 
        if not filename: 
            return 
 
        online = [x for x in self.results if x["status"] == "ONLINE"] 
68 
        offline = [x for x in self.results if x["status"] == "OFFLINE"] 
 
        with open(filename, "w", encoding="utf-8") as f: 
            f.write("ЗВІТ ПРО РЕЗУЛЬТАТИ МОНІТОРИНГУ ЛОКАЛЬНОЇ МЕРЕЖІ\n") 
            f.write(f"Дата та час: {datetime.now().strftime('%Y-%m-%d 
%H:%M:%S')}\n") 
            f.write("=" * 70 + "\n") 
            f.write(f"Загальна кількість перевірених вузлів: 
{len(self.results)}\n") 
            f.write(f"ONLINE: {len(online)}\n") 
            f.write(f"OFFLINE: {len(offline)}\n\n") 
            f.write("ДЕТАЛЬНІ РЕЗУЛЬТАТИ:\n") 
            f.write("-" * 70 + "\n") 
 
            for item in self.results: 
                f.write( 
                    f"IP: {item['ip']} | " 
                    f"Статус: {item['status']} | " 
                    f"Час: {item['delay']} | " 
                    f"Ім'я: {item['hostname']} | " 
                    f"Порти: {item['ports']} | " 
                    f"Перевірка: {item['last_seen']}\n" 
                ) 
 
        self.log_message(f"Текстовий звіт збережено: {filename}") 
        messagebox.showinfo("Успіх", "Текстовий звіт успішно збережено.") 
 
def main(): 
    root = tk.Tk() 
    app = NetworkMonitorApp(root) 
    root.mainloop() 
 
if __name__ == "__main__": 
    main() 
69 
ДОДАТОК Б 
Інтерфейс програмного забезпечення 
 
Рис. Б.1. Головне вікно розширеної системи моніторингу мережі 
 
На рисунку Б.1 представлено головне вікно розробленої системи 
моніторингу локальної комп’ютерної мережі з розширеним функціоналом. 
Інтерфейс програми містить блок параметрів моніторингу, у якому 
користувач може задати базову IP-адресу, діапазон хостів, інтервал 
перевірки та кількість потоків. Це дозволяє гнучко налаштовувати процес 
сканування мережі. 
Додатково реалізовано можливість перевірки популярних мережевих 
портів, що дозволяє отримати більш детальну інформацію про стан вузлів. 
У верхній частині розташовані кнопки керування, які забезпечують 
виконання основних функцій системи, зокрема запуск сканування, початок 
70 
та зупинку моніторингу, очищення таблиці, а також експорт результатів у 
різні формати. 
Центральна частина вікна представлена у вигляді вкладок, серед яких 
"Результати", "Статистика" та "Журнал подій". Такий підхід дозволяє зручно 
організувати відображення інформації та підвищує ефективність взаємодії 
користувача з програмою.  
Додатково слід зазначити, що головне вікно системи є центральним 
елементом взаємодії користувача з програмним забезпеченням, оскільки 
саме через нього здійснюється керування всіма функціями моніторингу 
локальної мережі, при цьому розташування елементів інтерфейсу виконано 
таким чином, щоб забезпечити максимальну зручність використання та 
швидкий доступ до основних можливостей системи. 
У верхній частині інтерфейсу розміщені поля введення параметрів, які 
дозволяють задавати діапазон IP-адрес, інтервал перевірки та інші 
характеристики роботи системи, що забезпечує гнучкість налаштування 
відповідно до умов використання. 
Центральна частина вікна відведена для відображення результатів 
роботи системи у вигляді таблиці, що дозволяє користувачу оперативно 
отримувати інформацію про стан мережевих вузлів, їх доступність та 
характеристики з’єднання. 
Крім того, інтерфейс передбачає наявність елементів керування, які 
дозволяють запускати та зупиняти процес моніторингу, очищати результати 
та виконувати додаткові дії, пов’язані з аналізом мережі. 
Таким чином, головне вікно системи забезпечує повноцінний доступ 
до функціональних можливостей програмного засобу та дозволяє ефективно 
виконувати задачі моніторингу локальної комп’ютерної мережі. 
71 
 
Рис. Б.2. Результати сканування мережі з визначенням відкритих портів 
 
На рисунку Б.2 представлено результати роботи системи після 
виконання сканування локальної мережі. 
У таблиці відображаються IP-адреси вузлів, їхній стан, час відповіді, 
ім’я пристрою, відкриті порти та час останньої перевірки. Така структура 
дозволяє отримати повну інформацію про стан кожного вузла. 
Особливістю реалізації є визначення відкритих портів для активних 
пристроїв. Це дозволяє оцінити, які мережеві служби доступні на вузлі, що 
значно розширює функціональні можливості системи. 
72 
Для зручності аналізу використано кольорову індикацію: активні 
вузли відображаються зеленим кольором, а неактивні — червоним. Це 
дозволяє швидко визначити стан мережі. 
У нижній частині вікна відображається підсумкова інформація про 
кількість доступних та недоступних вузлів, що забезпечує оперативну 
оцінку результатів сканування.  
На рисунку Б.2 відображено результати сканування локальної мережі, 
які формуються у вигляді структурованої таблиці, що містить основні 
параметри, необхідні для аналізу стану мережевих вузлів, при цьому кожен 
запис у таблиці відповідає окремому пристрою, який був перевірений у 
процесі виконання моніторингу. 
У таблиці наведено IP-адреси вузлів, їх поточний статус, що 
визначається як доступний або недоступний, а також час відповіді, який 
дозволяє оцінити якість мережевого з’єднання, при цьому значення часу 
відповіді можуть змінюватися залежно від навантаження мережі та 
технічних характеристик пристроїв. 
Додатково відображається інформація про відкриті порти, що 
дозволяє визначити активні мережеві служби на пристроях та отримати 
більш детальне уявлення про їх функціональні можливості. 
Система також забезпечує можливість сортування та фільтрації 
результатів, що значно спрощує роботу з великою кількістю даних та 
дозволяє швидко знаходити необхідну інформацію. 
Отримані результати можуть бути використані для виявлення 
активних вузлів у мережі, визначення проблемних пристроїв, а також для 
аналізу загального стану мережевої інфраструктури. 
Таким чином, представлена таблиця результатів є основним 
інструментом для аналізу даних, отриманих у процесі моніторингу, та 
забезпечує користувачу повну інформацію про стан локальної мережі. 
73 
 
Рис. Б.3. Сканування повного діапазону локальної мережі 
 
На рисунку Б.3 представлено результати сканування локальної мережі 
у розширеному діапазоні IP-адрес. 
У даному випадку було виконано перевірку всіх можливих вузлів у 
межах підмережі, що дозволяє отримати максимально повну інформацію 
про стан мережевої інфраструктури, система коректно визначає як доступні, 
так і недоступні пристрої, відображаючи їх у відповідному кольоровому 
форматі. 
Для активних вузлів додатково визначаються відкриті мережеві порти 
та час відповіді, що дозволяє оцінити характеристики з’єднання та доступні 
служби. 
Отримані результати підтверджують можливість використання 
розробленої системи для аналізу мереж різного масштабу, включаючи 
мережі з великою кількістю вузлів. 
74 
 
Рис. Б.4. Результати роботи системи у режимі моніторингу 
 
На рисунку Б.4 представлено результати роботи системи у режимі 
безперервного моніторингу локальної мережі. 
У цьому режимі система автоматично виконує повторні перевірки 
вузлів через заданий інтервал часу, що дозволяє відстежувати зміни стану 
мережі у реальному часі. 
У таблиці відображаються оновлені дані про доступність вузлів, що 
дає можливість оперативно виявляти появу або зникнення активних 
пристроїв. 
Завдяки цьому функціоналу система може використовуватися не лише 
для одноразового аналізу, але й для постійного контролю стану мережевої 
інфраструктури. 
75 
 
Рис. Б.5. Деталізований вивід результатів моніторингу 
 
На рисунку Б.5 представлено деталізований вивід результатів роботи 
системи моніторингу локальної мережі. 
Кожен рядок містить повну інформацію про перевірений вузол, 
зокрема IP-адресу, статус доступності, час відповіді, ім’я пристрою, відкриті 
порти та час виконання перевірки. 
Такий формат представлення дозволяє отримати максимально повну 
інформацію про стан мережі та забезпечує можливість детального аналізу 
кожного вузла. 
Особливою перевагою є відображення відкритих портів для активних 
пристроїв, що дозволяє визначити доступні мережеві служби. 
Отримані дані можуть бути використані для аналізу стану мережі, 
виявлення активних пристроїв та оцінки їх характеристик. 
76 
 
Рис. Б.6. Аналіз результатів моніторингу у табличному редакторі 
 
На рисунку Б.6 представлено результати роботи системи моніторингу, 
експортовані у форматі CSV та відкриті у табличному редакторі, у таблиці 
міститься детальна інформація про стан вузлів локальної мережі, зокрема 
IP-адреси, статус доступності, час відповіді, ім’я пристрою, відкриті порти 
та час перевірки, представлення даних у табличному вигляді дозволяє 
виконувати їх подальший аналіз, сортування та фільтрацію. 
77 
Це забезпечує можливість використання отриманих результатів у 
сторонніх програмних засобах для більш глибокого дослідження стану 
мережі. 
 
Рис. Б.7. Представлення результатів моніторингу у форматі JSON 
78 
На рисунку Б.7 представлено результати роботи системи моніторингу, 
збережені у форматі JSON , дані представлені у структурованому вигляді, де 
кожен вузол описується набором параметрів, таких як IP-адреса, статус 
доступності, час відповіді, ім’я пристрою, відкриті порти та час перевірки. 
Використання формату JSON забезпечує зручність зберігання та 
передачі даних, а також дозволяє інтегрувати результати роботи системи з 
іншими програмними засобами. 
Такий підхід відповідає сучасним вимогам до обробки інформації та 
значно розширює можливості використання розробленої системи.  
На рисунку Б.7 представлено розширений вигляд результатів роботи 
системи моніторингу, який містить детальну інформацію про стан 
мережевих вузлів та характеристики їх функціонування, при цьому дані 
відображаються у структурованому вигляді, що забезпечує зручність їх 
аналізу та сприйняття користувачем. 
Особливістю даного представлення є наявність додаткових 
параметрів, які дозволяють більш точно оцінити стан мережі, зокрема 
відображення часу відповіді, статусу вузлів та інформації про відкриті 
порти, що дає змогу отримати комплексне уявлення про роботу мережевої 
інфраструктури. 
У процесі аналізу отриманих даних користувач може визначити не 
лише активні пристрої, але й оцінити їх продуктивність та стабільність 
з’єднання, що є важливим для забезпечення ефективної роботи мережі. 
Крім того, система забезпечує можливість оновлення результатів у 
реальному часі, що дозволяє відстежувати зміни у стані мережі та 
оперативно реагувати на можливі проблеми. 
Наявність такого розширеного представлення результатів значно 
підвищує інформативність системи та дозволяє використовувати її не лише 
для контролю, але й для глибшого аналізу стану локальної комп’ютерної 
мережі. 
79 
Таким чином, представлений інтерфейс є важливим елементом 
системи, який забезпечує ефективне відображення та аналіз результатів 
моніторингу. 
 
Рис. Б.8. Вкладка статистики результатів моніторингу 
 
На рисунку Б.8 представлено вкладку статистики, яка відображає 
узагальнені результати роботи системи моніторингу локальної мережі. 
У даному розділі наведено ключові показники, зокрема загальну 
кількість перевірених вузлів, кількість активних та неактивних пристроїв, а 
також статистичні характеристики часу відповіді. 
Додатково відображається інформація про кількість виявлених 
відкритих портів, що дозволяє оцінити рівень активності мережевих служб. 
Наявність такого функціоналу дозволяє виконувати не лише контроль 
стану мережі, але й аналіз її характеристик, що значно підвищує 
ефективність використання системи. 
80 
Отримані статистичні дані можуть бути використані для оцінки 
продуктивності мережі та прийняття рішень щодо її оптимізації. 
 
Рис. Б.9. Відображення подій у журналі системи моніторингу 
 
На рисунку Б.9 представлено вкладку журналу подій, яка відображає 
інформацію про роботу системи моніторингу у реальному часі. 
Журнал містить записи про зміну стану вузлів, зокрема появу або 
зникнення доступності пристроїв, результати виконання сканування, а 
також дії користувача, такі як запуск або зупинка моніторингу. 
Кожен запис супроводжується часовою міткою, що дозволяє 
відстежувати послідовність подій та аналізувати динаміку роботи мережі. 
Наявність журналу подій підвищує інформативність системи та 
дозволяє використовувати її для детального аналізу змін стану локальної 
мережі. 
 
81 
ДОДАТОК В 
Опис основних фрагментів програмного коду 
У даному додатку наведено основні фрагменти програмного коду, які 
реалізують функціональні можливості системи моніторингу локальної 
комп’ютерної мережі. 
Розглянуті фрагменти коду відповідають за виконання ключових 
задач, зокрема створення графічного інтерфейсу, сканування мережі, 
обробку результатів та формування статистики. 
Опис кожного фрагмента дозволяє зрозуміти принцип роботи системи 
та логіку реалізації її основних функцій. 
import tkinter as tk 
 
root = tk.Tk() 
root.title("Система моніторингу локальної мережі") 
root.geometry("1200x760") 
 
# приклад простого елемента 
label = tk.Label(root, text="Моніторинг мережі", font=("Arial", 16)) 
label.pack(pady=10) 
 
root.mainloop() 
Фрагмент В.1. Ініціалізація графічного інтерфейсу користувача 
 
Даний фрагмент коду відповідає за створення головного вікна 
програми та налаштування його основних параметрів. 
У процесі ініціалізації задається назва вікна, його розміри та базові 
властивості, що забезпечує коректне відображення інтерфейсу. 
Використання бібліотеки tkinter дозволяє створити зручний 
графічний інтерфейс без використання сторонніх інструментів, що значно 
спрощує реалізацію програми. 
82 
Даний етап є початковим у роботі системи та забезпечує основу для 
подальшої взаємодії користувача з програмою. 
import subprocess 
import time 
 
def ping_ip(ip): 
    try: 
        start = time.time() 
        result = subprocess.run( 
            ["ping", "-n", "1", "-w", "700", ip], 
            stdout=subprocess.DEVNULL, 
            stderr=subprocess.DEVNULL 
        ) 
        delay = round((time.time() - start) * 1000, 2) 
 
        if result.returncode == 0: 
            return True, delay 
        else: 
            return False, None 
 
    except Exception: 
        return False, None 
Фрагмент В.2. Реалізація перевірки доступності вузла 
 
У даному фрагменті реалізовано функцію перевірки доступності вузла 
за допомогою ICMP-запиту. 
Функція виконує системну команду ping та аналізує отриманий 
результат, визначаючи, чи відповідає вузол на запит. 
Крім того, здійснюється вимірювання часу відповіді, що дозволяє 
оцінити якість мережевого з’єднання. 
Результат роботи функції використовується для визначення стану 
вузла та відображення його у таблиці результатів. 
83 
Даний підхід є простим та ефективним способом реалізації базового 
моніторингу мережі. 
import socket 
 
COMMON_PORTS = [21, 22, 23, 53, 80, 135, 139, 443, 445, 3389] 
 
def scan_common_ports(ip, timeout=0.2): 
    open_ports = [] 
 
    for port in COMMON_PORTS: 
        try: 
            sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
            sock.settimeout(timeout) 
 
            result = sock.connect_ex((ip, port)) 
            sock.close() 
 
            if result == 0: 
                open_ports.append(str(port)) 
 
        except Exception: 
            pass 
 
    return ", ".join(open_ports) if open_ports else "-" 
Фрагмент В.3. Реалізація сканування мережевих портів 
 
Даний фрагмент коду відповідає за визначення відкритих портів на 
мережевому вузлі. 
Сканування здійснюється шляхом встановлення TCP-з’єднання з 
певними портами та аналізу результату. 
У разі успішного з’єднання порт вважається відкритим та додається 
до списку. 
84 
Це дозволяє визначити, які мережеві служби працюють на пристрої, 
що значно розширює можливості аналізу. 
Результати сканування портів використовуються для формування 
більш детальної інформації про стан вузла. 
import threading 
 
def worker(ip): 
    print(f"Перевірка вузла {ip}") 
 
ips = ["192.168.0.1", "192.168.0.2", "192.168.0.3"] 
threads = [] 
 
for ip in ips: 
    thread = threading.Thread(target=worker, args=(ip,)) 
    threads.append(thread) 
    thread.start() 
 
for thread in threads: 
    thread.join() 
Фрагмент В.4. Реалізація багатопотокової обробки вузлів 
Даний фрагмент коду демонструє використання багатопотокового 
підходу для перевірки вузлів локальної мережі. 
Для кожної IP-адреси створюється окремий потік, який виконує 
функцію перевірки. Такий підхід дозволяє одночасно обробляти декілька 
вузлів, що значно скорочує загальний час сканування мережі. 
Після запуску всі потоки виконуються паралельно, а команда join() 
забезпечує очікування завершення їх роботи. 
Використання потоків є важливим елементом реалізації системи 
моніторингу, оскільки дозволяє підвищити швидкодію програми та 
забезпечити ефективну обробку великої кількості IP-адрес. 
85