Системна утиліта ідентифікації вузлів та ресурсів комп'ютерної мережі

Розгляд питань організації комп'ютерної мережі, засоби та способи ідентифікації її вузлів. Створення програми, яка забезпечує отримання інформації про наявні вузли в комп'ютерній мережі, здійснює їх ідентифікацію та сканує можливість доступу до них.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 25.10.2012
Размер файла 1,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ

Тернопільський національний технічний університет

імені Івана Пулюя

Кафедра комп'ютерних систем та мереж

КУРСОВА РОБОТА

З ДИСЦИПЛІНИ СИСТЕМНЕ ПРОГРАМУВАННЯ

СИСТЕМНА УТИЛІТА ІДЕНТИФІКАЦІЇ ВУЗЛІВ ТА РЕСУРСІВ

КОМП'ЮТЕРНОЇ МЕРЕЖІ

Виконав

Студент групи СІ-32 О.В. Сорочак

Керівник роботи Н. Р. Дем'янчук

Тернопіль - 2011

ЗМІСТ

  • ВСТУП
  • 1 РОЗРОБКА СТРУКТУРИ ПРОГРАМИ
    • 1.1 Аналіз технічного завдання
    • 1.2 Проектування компонентів програми
  • 2 РЕАЛІЗАЦІЯ ПРОГРАМИ
    • 2.1 Вибір середовища розробки
    • 2.2 Реалізація компонентів програми
  • 3 ІНТЕГРАЦІЯ
  • 4 ТЕСТУВАННЯ ТА РЕЗУЛЬТАТИ
  • ВИСНОВКИ
  • СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ
  • ДОДАТОК Лістинг програми

ВСТУП

Контролювати роботу мережі вручну є нелегкою задачею. Тому для спрощення цієї задачі були придумані і розробленні системні утиліти.

Системні утиліти значно полегшують життя і не тільки системного адміністратора але й простого користувача.

Бувають різні системні утиліти контролю мережі, проте в даній курсовій роботі було написано код програми власної системної утиліти, яка робить ідентифікації системних вузлів і ресурсів комп'ютерної мережі та зберігає дані.

На першому етапі буде розглянуто питання організація мережі, засоби та способи ідентифікації вузлів а також створено алгоритм програми, функціональну та структурну блок схеми.

На дургому етапі буде розглянуто вибір середовища розробки і надано його опис, а також опис головних функцій програми.

На третьому етапі ми здійснимо інтеграцію програми.

На четвертому буде зроблено тестування програми.

На п'ятому етапі зробимо відповідний висновки.

1 РОЗРОБКА СТРУКТУРИ ПРОГРАМИ

1.1 Аналіз технічного завдання

комп'ютерна мережа програма ідентифікація

Темою технічного завдання і курсової роботи є «СИСТЕМНА УТИЛІТА ІДЕНТИФІКАЦІЇ ВУЗЛІВ ТА РЕСУРСІВ КОМП'ЮТЕРНОЇ МЕРЕЖІ»

ПРИЗНАЧЕННЯ РОЗРОБКИ

Програма забезпечує отримання інформації про наявні вузли в комп'ютерній мережі, здійснює їх ідентифікацію та надає інформацію про можливість доступу до них, а також виконує додаткові функції пошуку ресурсів комп'ютерної мережі.

Вихідні дані для роботи включають розгляд наступних питань: особливості організації роботи комп'ютерної мережі та доступу до її вузлів:

Сучасні мережні технології сприяли новій технічній революції. Створення мережі на підприємстві, фірмі сприяє набагато вищому процесу обміну даними, відомостями між різними структурними підрозділами, прискоренню документообігу, контролю за рухами матеріалів й інших засобів, збільшенню й прискоренню передачі й обміну оперативною інформацією.

Створенню локальних мереж і глобальної єдиної мережі комп'ютерів надають таке ж значення, що й будівництву швидкісних автомагістралей у шістдесяті роки XX ст. Тому комп'ютерну мережу називають «інформаційною супермагістраллю». Підкреслюючи вигоду, що принесе застосування мереж усім користувачам, фахівці говорять про інформацію «на кінчиках пальців».

Комп'ютерна мережа -- це сукупність комп'ютерів і різних пристроїв, що забезпечують інформаційний обмін між комп'ютерами в мережі без використання яких-небудь проміжних носіїв інформації.

В даній курсвоій роботі буде розглядатись доступ до мережі класу LANі загальної мережі( тобто буде виконуватись ще перевірка зв'язку з інтернет провайдером, а саме з його сервером).

Деякі відомомсті про LANмережі:

Із розвитком нових досягнень в технологіях мереж на початку 80-х років мережі почали поширюватись. Кожна компанія створювала власні стандарти та обладнання, технічні засоби мереж та програмне забезпечення. Ця конкуренція привела до несумісності створених технологій, та виникненню проблем узгодження обладнання. Необхідно було робити повне оновлення обладнання.

Спочатку були створені стандарти LAN. Ці стандарти були відкритим набором директив для створення мережевих технічних засобів та програмного забезпечення. Апаратне забезпечення різних компаній було узгоджено, що давало можливість будувати надійні і стабільні LAN.

Локамльна комп'юмтерна меремжа (англ. Local Area Network(LAN) являє собою об'єднання певного числа комп'ютерів (іноді досить великого) на відносно невеликій території. В порівнянні з глобальною мережею (WAN), локальна мережа зазвичай має більшу швидкість обміну даними, менше географічне покриття та відсутність необхідності використовувати запозиченої телекомунікаційної лінії зв'язку.

Локальна комп'ютерна мережа -- комп'ютерна мережа для обмеженого кола користувачів, що об'єднує комп'ютери в одному приміщенні або в рамках одного підприємства.

Розроблена системна утиліта перевірятиме також які протоколи використовуватиме комп'ютерна мережа.

Мережемвий протокомл в комп'ютерних мережах -- заснований на стандартах набір правил, що визначає принципи взаємодії комп'ютерів в мережі. Протокол також задає загальні правила взаємодії різноманітних програм, мережевих вузлів чи систем і створює таким чином єдиний простір передачі. Хости (будь-який вузол мережі що відправляє або приймає дані через мережу називають хостом (host)) взаємодіють між собою. Для того, щоб прийняти і обробити відповідним чином повідомлення, їм необхідно знати як сформовані повідомлення і що вони означають. Прикладами використання різних форматів повідомлень в різних протоколах можуть бути встановлення з'єднання з віддаленою машиною, відправка повідомлень електронною поштою, передача файлів. Зрозуміло, що різні служби використовують різні формати повідомлень.

Оскільки в інтрнет мережах найбільш поширеними протоколами на даний момент є протоколи IP, а саме IPv4 і IPv6, то розроблена системна утиліта ідентифікація вузлів та ресурсів комп'ютерної мережі здійснюватиме ідентифікацію цих протоколів.

Варто сказати, що IPv4 (англ. Internet Protocol version 4) -- четверта версія мережевого протоколу IP. Перша версія протоколу, яка набула широко розповсюдження. Протокол IPv4, описаний у RFC 791 (вересень 1981 року), прийшов на заміну описаному у RFC 760 (січень 1980 року). Використовує 4 байтну форму запису адрес пристроїв в комп'ютерній мережі.

IPv4 використовує 32-бітні (4 байтні) адреси, які обмежують адресний простір 4 294 967 296 (себто 28?4) можливими унікальними адресами.

Формою запису IP-адреси (IPv4) зазвичай є запис у вигляді 4 десяткових чисел від 0 до 255 (28), розділених крапками, наприклад: 127.0.0.1 (посилання пристрою на самого себе), або 91.198.174.225 (адреса ресурсу).

Деякі адреси IPv4 зарезервовані для спеціальних цілей та не можуть бути глобально маршрутизованими (доступними з будь-якого пристрою, що підключений до мережі інтернет). Так для приватних ІР-адрес ("сірих IP") в локальних мережах зарезервовано близько 18 млн адрес. Ще близько 270 млн адрес зарезервовано для групових передач (англ. multicast).

Обмежене число унікальних адрес у ~4.3 млрд у зв'язку з бурхливим розвиток Інтернету та резервуванням діапазону ~290 млн було вичерпане. 3 лютого 2011 року організація IANA видала останні 5 блоків IP-адрес організації Регіональних Інтернет Регістрів (RIR).

Задля вирішення цієї проблеми ще з 1990-их розвивався протокол IPv6, запущений з 2006 року.

IPv6 (англ. Internet Protocol version 6) -- нова версія IP-протоколу -- IP версії 6. Розробка протоколу IPv6 почалася 1992 року, а з 2003 р. його підтримку забезпечують виробники більшості телекомунікаційного устаткування (корпоративного рівня). IPv6 -- новий крок у розвитку Інтернету. Цей протокол розроблено з урахуванням вимог до Глобальної мережі, що зростають. При нинішніх темпах розвитку мережі за умови використання старого протоколу IPv4 адреси закінчаться до 2012 року.

Найбільш суттєва різниця між IPv4 та IPv6 полягає в тому, що раніше на інтернет-адресу виділяли 4 байти (32 біта), що відповідає стандартній на сьогодні чотирьохблочній IP-адресі, а протокол IPv6 виділяє на адресу 16 байтів (128 біт). Це відповідає 340 трильйонам трильйонів трильйонів адрес (3,4x1038) або по 5x1028 адрес на кожну людину.

5 лютого 2008 року вночі організація ICANN, яка наглядає за використанням інтернет-протоколів, почала додавати в DNS-сервери записи, що містять адреси у форматі протоколу IPv6[1]. Це поклало початок переходу з нинішнього протоколу IPv4 на сучасніший IPv6.

У квітні 2009 у мережі UA-IX запущено процес перевірки протоколу IPv6. У числі перших компаній, що ухвалили рішення про участь в тестуванні -- «ТопНЕТ» і «Датагруп». Вони встановили IPv6 BGP-з'єднання з маршрутизатором UA-IX, і здійснили обмін маршрутною інформацією між ними. У квітні 2011 розпочалось масове впровадження IPv6 серед домашніх користувачів інтернет. Першою мережею з підтримкою IPv6 для всіх користувачів стала Alfa-inet.

IPv6 адреси відображаються як вісім груп по чотири шістнадцяткові цифри, розділених двокрапками. Приклад адреси:

2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d

Якщо одна чи більше груп підряд дорівнюють 0000, то вони можуть скорочено записуватись як подвійна двокрапка (::).

Наприклад, 2001:0db8:0000:0000:0000:0000:ae21:ad12 може бути скорочена до 2001:db8::ae21:ad12, 0000:0000:0000:0000:0000:0000:ae21:ad12 - до ::ae21:ad12. Скорочення не дозволяється у випадку, коли адреса містить 2 окремі нульові групи через виникнення невизначеності.

При використанні IPv6-адреси в URL необхідно брати адресу в квадратні дужки:

http://[2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d]/

Якщо потрібно вказати порт, то він пишеться після дужок:

http://[2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d]:8080/

Принципи ідентифікації вузлів комп'ютерної мережі вбагатозадачних операційних системах:

Комп'ютеру простіше працювати з числами, ніж з символьними іменами. Людині, наприклад, набагато простіше запам'ятати символьне ім'я ivanov, чим адреса 192.168.57.51. Правда? Тут вже позначається психологія людини - символьне ім'я зіставляється з якимсь чином - Івановим, а не якимись абстрактними числами.

Комп'ютер же просто так влаштований, що йому «зручніше» оперувати з числами.

Проблема дозволу імен, тобто перетворення IP-адреси комп'ютера в символьне ім'я і назад, хвилювала розробників мереж давно - з моменту появи перших мереж. Спочатку для дозволу імен використовувався файл hosts. У цьому файлі зберігалася наступна інформація:

IP-адреса; ім'я; псевдоніми вузла. Наприклад:

127.0.0.1 localhost

192.168.1.1 gateway

192.168.1.5 dhsilabs

В межах однієї організації і за умови, що комп'ютери небагато, скажемо 5. 10 або менша кількість, файл hosts повинен влаштовувати всіх. Ви його заповнюєте, наприклад

192.168.1.1 compl

192.168.1.N compN

і копіюєте на всі комп'ютери вашої мережі - від compl до compN. При додаванні нового комп'ютера в мережу, вам потрібно додати рядок:

192.168.1.N+1 compN+1

у файл hosts і знову скопіювати даний файл на всі комп'ютери від 1 до N+1. Не дуже зручно, чи неправда? Але, невже у вас щодня додаються нові комп'ютери у вашу мережу? Зазвичай мережа невеликого підприємства - це від 2 до 10 комп'ютерів, причому нові комп'ютери рідко підключаються до мережі. В цьому випадку файл hosts повинен повністю задовольнити ваші вимоги.

Кожен компютер у мережі має свою адресу. Проте вони можуть використовувати різні протоколи зєднання з глобальною мережею, так як у LANмережі можуть бути старіші і новіші комп'ютери. До того ж прописувати весь час вказану вище процедуру вручну не є ефективно. Для полегшення роботи було придумано системні утиліти.

Засоби ідентифікації вузлів комп'ютерної мережі в операційних системах сімейств MicrosoftWindows/Unix/Linux.

Багато технологій так чи інакше передають інформацію про користувача та комп'ютери.Все це дозволяє «впізнавати» навіть відвідувача, який спеціально видалив кукі, змінив браузер і перейшов на інший IP.

Найбільше поширеними засобами ідентифікацій вузлів є так звані системні утиліти.

Утилімта (англ. Utility program, utility) -- сервісна програма, що допомагає керувати файлами, отримувати інформацію про комп'ютер, діагностувати й усувати проблеми, забезпечувати ефективну роботу мережі. Утиліти -- сервісні програми, що розширюють можливості ОС.

Утилімта (в програмуванні) -- невеличка прикладна програма.

Основним процедури, які виконують системні утиліти є пошук вузлів, надання про них інформації, пошук русерсів, перевірка зєдання та ідентифікації сервера.

1.2 Проектування компонентів програми

Рисунок 1- Алгоритм роботи програми

На даній схемі ми бачимо у якій послідовності буде виконуватись програма та що вона робитиме у випадку якщо одна з складових не виконуватиметься.

Рисунок 2 - Структурна схема програми

На даному рисунку ми бачимо структурну схему програми. Описано підсистему вводу, підсистему ідентифікації та підсистему виводу.

Рисунок 3 - Функціональна схема програми

На даному рисунку ми бачимо функціональну схему програми. Тут відобрежено головні її функцію, такі як: функція ідентифікації сервера,функція ідентифікації вузлів, функція ідентифікації ресурсів, функція збережння даних програми та функція відображення відомостей про програму.

2 РЕАЛІЗАЦІЯ ПРОГРАМИ

2.1 Вибір середовища розробки

Для даної курсової роботи я вибравbash середовище програмування у якому буде створено системну утиліту ідентифікації вузлів та ресурсів комп'ютерної мережі.

Bash це командний процесор Unix написаний для проекту GNU. Його ім'я це акронім від Bourne-again shell - гра слів (Bourne again / born again) в Bourne shell (sh), який був раніше дуже важливим командному процесором. Bourne shell поширювався разом з Unix Version 7, приблизно в 1978. Оригінальний Bourne shell був написаний Стефаном Борном, який працював дослідником в Bell Labs. Bash shell був написаний в 1987 Брайном Фоксом. У 1990, Чет Рамей став основним мейнтейнером. Bash це командний процесор за замовчуванням в багатьох Linux системах.

Основні моменти синтаксису Bash

Синтаксис команд Bash це надмножество синтаксису команд Bourne shell. Остаточна специфікація синтаксису команд Bash є в Bash Reference Manual, що постачається проектом GNU. Ами буде розглянуто деякі з унікальних особливостей синтаксису Bash.

Безліч важливих скриптів командного процесора Bourne можуть виконуватися без зміни в Bash, за винятком тих скриптів Bourne, які посилаються на спеціальні змінні Bourne або використовують вбудовані команди Bourne. Синтаксис команд Bash включає в себе ідеї скопійовані з Korn shell (ksh) та C shell (csh), такі як редагування командного рядка, історія команд, стек директорії, змінні $ RANDOM і $ PPID, і синтаксис заміни команди POSIX: $ (.. .). Коли Bash використовується як інтерактивний командний процесор, він підтримує автозавершення імен програм, імен файлів, імен змінних тощо, якщо користувач натискає кнопку TAB.

Синтаксис Bash містить безліч розширень, в яких потребував Bourne shell. Деякі з них наведено тут.

Цілочисельна математика

Головне обмеження Bourne shell це те, що він не може виконувати обчислення з цілими числами без породження зовнішнього процесу. Bash може виконувати цілочисельні обчислення усередині процесу використовуючи команду ((...)) і синтаксис змінної $[...].

Команда ((...)) так само може використовуватися в умовних твердженнях, тому що її вихідний параметр це 0 або 1, які можуть інтерпретуватися як true або false:

if ((VAR == Y * 3 + X * 2))

then

echo Yes

fi

((Z> 23)) && echo Yes

Команда ((...)) підтримує такі відносні оператори:'==','!=', '>', '<','>=', і'<='.

Bash не підтримує обчислення усередині процесу з числами з плаваючою крапкою. Тільки командні процесори Unix підтримують цю можливість Korn Shell (версія 1993 року) і zsh (починаючи з версії 4.0).

Перенаправлення I / O

Bash має індивідуальний синтаксис перенаправлення, який не підтримує Bourne shell. Bash може перенаправляти стандартний вивід і стандартні помилки одночасно, використовуючи наступний синтаксис:

command &> file

що простіше надрукувати, ніж еквівалентну команду використовуючи синтаксис Bourne shell "command> file 2>& 1". Bash, починаючи з версії 2.05b, може перенаправляти стандартний ввід з рядка використовуючи наступний синтаксис (іноді званий "here strings"):

command <<<"string to be read as standard input"

Якщо рядок містить пробіли, він повинен бути укладеним в лапки.

Приклад: Перенаправлення стандартного виводу у файл, запис даних, закриття файлу, скидання stdout

# Make Filedescriptor (FD) 6 a copy of stdout (FD 1)

exec 6>& 1

# Open file "test.data" for writing

exec 1> test.data

# Produce some content

echo "data: data: data"

# Close file "test.data"

exec 1>& -

# Make stdout a copy of FD 6 (reset stdout)

exec 1>& 6

# Close FD6

exec 6>& -

Відкриття та закриття файлів

# Open file test.data for reading

exec 6 <test.data

# Read until end of file

while read-u 6 dta

do

echo "$ dta"

done

# Close file test.data

exec 6 <& -

Захоплення виводу зовнішніх команд:

# Execute 'find' and store results in VAR

# Search for filenames which end with the letter "h"

VAR = $ (find.-Name "* h")

Регулярні обчислення усередині процесу

Bash 3.0 підтримує всередині процесні регулярні обчислення відповідні Вашого наступного синтаксису, що нагадує Perl:

[[String = ~ regex]]

Синтаксис регулярних обчислень такий же що і задокументований на сторінках документації regex (3). Статус виходу вищезазначеної команди 0 якщо перерахування regex це рядок, 1 якщо це не так. До введеним подвираженій в регулярному виразі можна отримати доступ, використовуючи змінну командного процесора BASH_REMATCH, як показано нижче:

if [[abcfoobarbletch = ~ 'foo (bar) bl (.*)']]

then

echo The regex matches!

echo $ BASH_REMATCH - outputs: foobarbletch

echo $ {BASH_REMATCH [1]} - outputs: bar

echo $ {BASH_REMATCH [2]} - outputs: etch

fi

Цей синтаксис дає краще виконання породження окремого процесу щоб виконати команду grep, бо відповідний регулярний вираз має місце в межах процесу Bash. Якщо регулярний вираз або рядок містять пропуски або метасимволи (такі як '*' or'?'), вони повинні бути поміщені в лапки.

Зворотні escape послідовності

Слова, що мають форму $ 'рядок' розглядаються окремо. Слово розширюється до рядка, за допомогою символів зворотних escape послідовностей, описаних у мові програмування C.

Стартові скрипти Bash

Коли запускається Bash, він виконує команди, записані в різноманітних скриптах.

Коли Bash викликається інтерактивною командною оболонкою, або неінтерактивною оболонкою з параметром - login, він спочатку читає і виконує команди з файлу / etc / profile, якщо він існує. Після прочитання цього файлу, він у такому порядку шукає ~ /. Bash_profile, ~ /. Bash_login, і ~ /. Profile, читає і виконує команди з першого, який виконується і читається. Параметр - noprofile може використовуватися, коли командна оболонка перешкоджає такій поведінці.

Коли командна оболонка завершує свою роботу, Bash читає і виконує команди з файлу ~ /. Bash_logout, якщо він існує.

Коли інтерактивна оболонка, яка не є командною оболонкою, запускається, Bash читає і виконує команди з ~ /. Bashrc, якщо цей файл існує. Це може бути загальмовано параметром - norc. Параметр - rcfile file змусить Bash читати і виконувати каманди з file замість ~ /. Bashrc.

Коли Bash запускається неінтерактивному, то для запуску скрипта оболонки, наприклад, він шукає змінну BASH_ENV в середовищі, розширює своє значення якщо він з'явиться там, і використовує розширене значення як ім'я файлу для читання та виконання. Bash поводиться так, як якщо б були виконані наступні команди:

if [-n "$ BASH_ENV"]; then. "$ BASH_ENV"; fi

але значення змінної PATH не використовується для пошуку файлу.

Якщо Bash викликається з параметром sh, він намагається імітувати запуск історичних комманд sh на скільки це можливо, в той час як відповідний стандарт POSIX так само. Якщо Bash запущено в якості інтерактивної оболонки, або у формі не інтерактивної с - login опцією, це перша спроба на читання і виконання команд с / etc / profile і ~ /. Profile, в такому порядку. Ця - noprofile опція може бути використана для інгібіції. При виклик як інтерактивної оболонки з ім'ям sh, Bash дивиться на змінні ENV, на їхнє значення, якщо змінна визначена, і використовує розширене значення як ім'я файлу для запису і виконання. Поки shell викликається як sh, то параметр - rcfile не дає результату. Чи не інтерактивна оболонка викликана за параметром sh не намагається читати і виконувати команди від будь-яких інших файлів запуску. Коли викликана за sh, Bash входить в posix mode після автозапуску готових файлів.

Коли Bash запущена в POSIX-режимі, з параметром - posix в командному рядку, Це слід POSIX-стандарту для файлів автозапуску. У цьому режимі, оболонка доповнюється ENV змінної і командами, які готові для виконання з файлу, чиє ім'я і є ця змінна.

Bash намагається визначити коли вона буде запущена на remote shell daemon, звичайно це rshd. Якщо Bash опреділіть, що оболонка в даний час запущена rshd, то читаються і виконуються команди з ~ /. Bashrc, якщо цей файл доступний звичайно. Це не відбудеться якщо Bash викликана за sh. Опція - norc може бути використана для інгібінаціі такої поведінки, і опція - rcfile може бути задіяна для запису іншого файлу, але rshd як правило, не посилається на оболонку з цими опціями, або щоб їх можна було вказати.

2.2 Реалізація компонентів програми

Компоненти програми я реалізував за допомогою bashscriptу середовищі Unix.

#!/bin/bash

Опис головних функцйцій програми :

Головними функціями програми є ідентифікація сервіса, ідентифікація вузлів та ресурсів комп'ютерної мережі.

Ідентифікація сервіса комп'ютерної мережі здійснюється за допомогою наступної функції :

AUDITFL=`hostname -s` де команда `hostname -s` власне і вказує на сервер комп'ютерної мережі.

Пошуку вузлів у моїй системні утиліті здійснюється за допомогою функції :

case "$MJR" in

"2" )

case "$MIR" in

"0" | "1" )

FWILBIN="ipfwadm";

IPPROC="ip_[mfp][ao][rs][wqt][qha]*";;

"2" | "3" )

FWILBIN="ipchains";

IPPROC="ip_[fm][wa][cns]*";;

* )

FWILBIN="iptables";

IPPROC="ip_tables*";;

esac;;

"3" )

FWILBIN="iptables";

IPPROC="ip_table*";;

* )

FWILBIN="Unknown";;

esac

if [ $IP4E ]; then IPV="IPV4"; fi

if [ $IP6E ]; then IPV=$IPV"/IPV6"; fi

FWILPROC1=`ls /proc/net/$IPPROC 2>/dev/null | grep -c ip_tables`

FWILPROC2=`which $FWILBIN 2>/dev/null | grep -c $FWILBIN`

if [ $FWILPROC1 -ne 0 -a $FWILPROC2 -ne 0 ] ; then FWILSTAT="IP_Tables"; else FWILSTAT="None"; fi

Дана фінкція виконує пошук вузлів з протоколами IP4 iIP6 , вказує шлях їх пошуку та якшо нічого не знайдено,то при роботі програми буде вибиватись помилка. Ідентифікація ресурсів мережі здійснюється за допомогою наступної функції :

for P in `awk ' { print $2 } ' $TMPFD/$FLTC`

do

PP=$PP$P,

lsof -i tcp:$P | grep LISTEN | awk -v P=$P -v TMPFL=$TMPFD/$TMPFL3 ' { printf " %12s %12s %20s\n", P, $1, $2 >> TMPFL } '

done

echo "$PP details" >> $TMPFD/$AUDITFL

sort -g -k3 $TMPFD/$TMPFL3 > $TMPFD/$TMPFL2

awk -v TMPFL3=$TMPFD/$TMPFL3 ' BEGIN { }

{ if(cf != $2)

printf "%12s %12s %20s\n", $1, $2, $3 > TMPFL3

cf = $2 }

END { } ' $TMPFD/$TMPFL2

line

lsof -i tcp:$PP | grep LISTEN | sort -d > $TMPFD/$TMPFL2

awk -v TMPFL1=$TMPFD/$TMPFL1 ' BEGIN { }

{ if(cf != $1)

print $1, $2, $9 > TMPFL1

cf = $1 }

END { } ' $TMPFD/$TMPFL2

printf "%5s %10s %8s %30s %20s %s\n" "PID" "Process" "Port" "As per /proc" "As per Which" "Working Dir" >> $TMPFD/$AUDITFL

for ID in `awk ' { print $2 } ' $TMPFD/$TMPFL1`

do

PROCEXE=`ls -l --full-time /proc/$ID/exe | awk ' { print $11 } '`

PROCPWS=`ls -l --full-time /proc/$ID/cwd | awk ' { print $11 } '`

PROC=`awk -v P=$ID ' { if (P == $2) print $1 } ' $TMPFD/$TMPFL1`

WPROC=`which 2>/dev/null $PROC`

P=`awk -v ID=$ID ' BEGIN { } { if (ID == $3) print $1 } END { } ' $TMPFD/$TMPFL3`

printf "%5s %10s %8s %30s %20s %s\n" "$ID" "$PROC" "$P" "-$PROCEXE" "-$WPROC" "-$PROCPWS" >> $TMPFD/$AUDITFL

done

line

netstat -tulnp | grep LISTEN | awk ' { print $4, $7 } ' | sed 's/\(.*\)\:/\1 /' | sed 's/\// /g' > $TMPFD/$TMPFL1

printf "%20s %8s %8s %20s\n" "IP" "PORT" "PID" "PROCESS" >>

У цій функції ми можемо побачити процеси, порти та програмне забезпечення яке використовує системна утиліта у даній курсовій роботі.

Також дана системна утиліта буде виконувавти додаткові функції перевірки FW Status(Firmware Status).

3. ІНТЕГРАЦІЯ

Інтегруємо всю програму і програмний код в термінал середовища UNIX.

Робим це наступним чином:

В командому рядку термінала прописуємо наступну команду:

sudobash, після чого вказуємо місце знаходження нашої програми.

На рисунку 4 показано як це зробити.

Рисунок 4 - Інтеграція програми

4 ТЕСТУВАННЯ ТА РЕЗУЛЬТАТИ

Після того як ми зробили інтеграцію програми ми натискаємо клавішу ентер і можем спостерігати за результатами:

Рисунок 5 - Результати роботи програми

У даному вікні ми можемо побачити результат виконання програми. Зокерма кількість вузлів, відстань до них,імя сервера, ІР адресу мережі і ІР маски мережі, Назву операційної системи яку ми використовуємо, ресурси(процеси) які запущені у даній мережі.

Вкінці виконаної програми ми можем побачити місце куди зберігаються дані а нашому випадку це tmp/netadtchk/oleh-VirtualBox.

ВИСНОВКИ

Виконуючи дану курсову роботу я створив системну утиліту ідентифікації вузлів та ресурсів комп'ютерної мережі. Моя програма забезпечує отримання інформації про наявні вузли в комп'ютерній мережі, ресурси та здійснює їх ідентифікацію , надає інформацію про можливість доступу до них, а також виконує додаткові функції пошуку ресурсів комп'ютерної мережі, зокрема перевірки FirmwareStatus.

Розгялнув питання організації комп'ютерної мережі, способи їх організації, методи та засоби пошуку вузлів та ресурсів у комп'ютерні мережі.

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

1. http://ua.textreferat.com/referat-7828.html - особливості організації роботи комп'ютерної мережі та доступу до її вузлів.

2. http://del.donetsk.ua/prosta-identyfikaciya-vuzliv-kompyuteriv/imena-i-ip-adresy-kompyutera/ - принципи ідентифікації вузлів комп'ютерної мережі в

багатозадачних операційних системах.

3. http://softkey.info/reviews/review461.php - засоби ідентифікації вузлів комп'ютерної мережі в операційних системах сімейств MicrosoftWindows/Unix/Linux.

4. http://ua-referat.com/Операційна_система_Unix - Середовище UNIX.

ДОДАТОК Лістинг програми

#!/bin/bash

#############################################################

#

# Script to check / audit systems process using network resources

# and report a detailed info from various system file, process and

# outputs

#

#############################################################

#

# Author: Sorochack Oleh

# License: GNU GPL v3

#############################################################

VERSION=1

#############################################################

AUDITFL=`hostname -s`

CHKPID="/var/run/netaudchk-ppid"

FLWPID="/var/run/netaudchk-fpid"

TMPFD="/tmp/netadtchk"

TMPFL1="tmpfl1"

TMPFL2="tmpfl2"

TMPFL3="tmpfl3"

OPSYS=`uname -o`

OPKER=`uname -s`

OPDST=`uname -r`

HSTNM=$AUDITFL

FLTC="tcpflen"

FWTSTIN="fwtest.in"

FETSTOUT="fwtest.out"

HNIC=`lspci | grep -ic ethernet`

VNIC=`ip -d link | grep ^[0-9] | awk '{ print $2 }' | sed 's/://' | grep -vi "lo" | grep -vc "eth"`

LNIC=`ip -d link | grep ^[0-9] | awk '{ print $2 }' | sed 's/://' | grep -ic "lo"`

TNIC=`expr $HNIC + $VNIC + $LNIC`

IP4E=`ip -d addr | grep -ic inet`

IP6E=`ip -d addr | grep -ic inet6`

TTCP=`ss -t | wc -l`

TTCPL=`ss -t -l | wc -l`

TTCPC=`ss -t -a | wc -l`

IPFW=`cat /proc/sys/net/ipv4/ip_forward`

IPMQ=`cat /proc/sys/net/ipv4/ip_dynaddr`

IPPROC=""

MJR=${OPDST:0:1}

MIR=${OPDST:2:1}

FWILBIN="None"

FWON="Off"

FWIN="False"

FWOT="False"

FWFW="False"

FWMQ="False"

NMSR=`grep nameserver /etc/resolv.conf | grep -v ^# | head -1 | awk '{ print $2 } '`

DFGW=`ip route | grep default | sed 's/default\|proto\|static//g'`

#############################################################

# Functions

function lpnt {

for r in {1..80..1}

do

printf "%c" $1

done

printf "\n"

}

#

#############################################################

function cleanup {

rm -f $CHKPID

rm -f $FLWPID

}

#############################################################

function create_workspace {

mkdir $TMPFD

}

#############################################################

function remove_workspace {

rm -Rf $TMPFD

}

############################################################

function pause {

echo -n "Press enter to continue..."

read

}

############################################################

function line {

echo >> $TMPFD/$AUDITFL

}

#############################################################

#Main Program

if [ $UID -ne 0 ]

then

echo

echo "No root previleges"

exit 0

fi

if [ "$1" == "-c" ]

then

cleanup

echo "PID files removed"

exit 0

fi

if [ "$1" == "-h" ]

then

echo

echo "Usage: "

echo "netadtchk [option]"

echo " -a All"

echo " -h Help"

echo " -c Clear PID files"

echo " no option prints the summery information to the stdout and into the /tmp/netadtchk/$AUDITFL file."

echo

exit 0

fi

if [ -f $CHKPID ]

then

echo " Net Auditor running with PID `cat $CHKPID`"

echo " To clear the PID files use the -c option"

exit 0

else

echo $$ > $CHKPID

fi

#

#

if [ -d $TMPFD ]

then

remove_workspace

create_workspace

else

create_workspace

fi

#

case "$MJR" in

"2" )

case "$MIR" in

"0" | "1" )

FWILBIN="ipfwadm";

IPPROC="ip_[mfp][ao][rs][wqt][qha]*";;

"2" | "3" )

FWILBIN="ipchains";

IPPROC="ip_[fm][wa][cns]*";;

* )

FWILBIN="iptables";

IPPROC="ip_tables*";;

esac;;

"3" )

FWILBIN="iptables";

IPPROC="ip_table*";;

* )

FWILBIN="Unknown";;

esac

if [ $IP4E ]; then IPV="IPV4"; fi

if [ $IP6E ]; then IPV=$IPV"/IPV6"; fi

FWILPROC1=`ls /proc/net/$IPPROC 2>/dev/null | grep -c ip_tables`

FWILPROC2=`which $FWILBIN 2>/dev/null | grep -c $FWILBIN`

if [ $FWILPROC1 -ne 0 -a $FWILPROC2 -ne 0 ] ; then FWILSTAT="IP_Tables"; else FWILSTAT="None"; fi

#

if [ $FWILBIN == "iptables" ]

then

$FWILBIN -L | grep -i chain > $TMPFD/$TMPFL1

for C in `awk ' { print $2 } ' $TMPFD/$TMPFL1`

do

if [ $C == "INPUT" ]

then

if [ `$FWILBIN -L $C | grep -wc 'all\|tcp\|udp'` -gt 0 ] ; then FWIN="True"; fi

fi

if [ $C == "OUTPUT" ]

then

if [ `$FWILBIN -L $C | grep -wc 'all\|tcp\|udp'` -gt 0 ] ; then FWOT="True"; fi

fi

if [ $C == "FORWARD" ]

then

if [ `$FWILBIN -L $C | grep -wc 'all\|tcp\|udp'` -gt 0 ] ; then FWFW="True"; fi

fi

done

fi

#

FWR=`$FWILBIN -L | sed '/^$/d' | grep -iv chain | grep -ivc "target\|source\|destination"`

if [ $FWR -gt 0 -a $FWIN == "True" ] ; then FWON="On"; fi

#

printf "%12s %12s %20s %20s %9s\n" "Hostname" "OS" "Kernel" "Release" "IPV" >> $TMPFD/$AUDITFL

printf "%12s %12s %20s %20s %9s\n\n" "$AUDITFL" "$OPSYS" "$OPKER" "$OPDST" "$IPV" >> $TMPFD/$AUDITFL

#

printf "%15s%12s%20s%20s%25s\n" "FW Binary" "Forwarding" "Masquerading" "1st Name Srv" "Default Gateway" >> $TMPFD/$AUDITFL

printf "%15s%12s%20s%20s%25s\n\n" "$FWILBIN" "$IPFW" "$IPMQ" "$NMSR" "$DFGW" >> $TMPFD/$AUDITFL

#

printf "%14s%14s%14s%14s%14s\n" "FW Status" "FW In" "FW Out" "FW Forward" "FW Masq" >> $TMPFD/$AUDITFL

printf "%14s%14s%14s%14s%14s\n" "$FWON" "$FWIN" "$FWOT" "$FWFW" "$FWMQ" >> $TMPFD/$AUDITFL

#

printf "\n%15s %15s %20s\n" "Type" "Name" "IP Details" >> $TMPFD/$AUDITFL

for N in `ip -d link | grep ^[0-9] | awk '{ print $2 }' | sed 's/://'`

do

case "$N" in

"lo" )

TYPE="Loopback";;

"eth0" | "eth1" | "eth2" | "eth3" | "eth4" | "eth5" )

TYPE="Hardware";;

* )

TYPE="Virtual/Other"

esac

IPDET=`ifconfig $N | grep -w "inet"`

printf "%15s %15s %s\n" "$TYPE" "$N" "$IPDET" >> $TMPFD/$AUDITFL

done

line

echo "Routes:" >> $TMPFD/$AUDITFL

netstat -rn >> $TMPFD/$AUDITFL

line

ss -nl4 | awk ' { print $3 } ' | grep -iv local | sed 's/*/0.0.0.0/g' > $TMPFD/$TMPFL1

ss -nl6 | awk ' { print $3 } ' | grep -iv local | sed 's/\(.*\)\:/\1 /' > $TMPFD/$TMPFL2

sed -i 's/\:/ /g' $TMPFD/$TMPFL1

sort $TMPFD/$TMPFL1 > $TMPFD/$TMPFL3

sort $TMPFD/$TMPFL2 >> $TMPFD/$TMPFL3

echo "This system has `expr $TTCPL - 1` Listening Sockets (IPv4/IPv6) at TCP/Ports: " >> $TMPFD/$AUDITFL

cp $TMPFD/$TMPFL3 $TMPFD/$FLTC

#

#

for P in `awk ' { print $2 } ' $TMPFD/$FLTC`

do

PP=$PP$P,

lsof -i tcp:$P | grep LISTEN | awk -v P=$P -v TMPFL=$TMPFD/$TMPFL3 ' { printf " %12s %12s %20s\n", P, $1, $2 >> TMPFL } '

done

echo "$PP details" >> $TMPFD/$AUDITFL

sort -g -k3 $TMPFD/$TMPFL3 > $TMPFD/$TMPFL2

awk -v TMPFL3=$TMPFD/$TMPFL3 ' BEGIN { }

{ if(cf != $2)

printf "%12s %12s %20s\n", $1, $2, $3 > TMPFL3

cf = $2 }

END { } ' $TMPFD/$TMPFL2

line

lsof -i tcp:$PP | grep LISTEN | sort -d > $TMPFD/$TMPFL2

awk -v TMPFL1=$TMPFD/$TMPFL1 ' BEGIN { }

{ if(cf != $1)

print $1, $2, $9 > TMPFL1

cf = $1 }

END { } ' $TMPFD/$TMPFL2

printf "%5s %10s %8s %30s %20s %s\n" "PID" "Process" "Port" "As per /proc" "As per Which" "Working Dir" >> $TMPFD/$AUDITFL

for ID in `awk ' { print $2 } ' $TMPFD/$TMPFL1`

do

PROCEXE=`ls -l --full-time /proc/$ID/exe | awk ' { print $11 } '`

PROCPWS=`ls -l --full-time /proc/$ID/cwd | awk ' { print $11 } '`

PROC=`awk -v P=$ID ' { if (P == $2) print $1 } ' $TMPFD/$TMPFL1`

WPROC=`which 2>/dev/null $PROC`

P=`awk -v ID=$ID ' BEGIN { } { if (ID == $3) print $1 } END { } ' $TMPFD/$TMPFL3`

printf "%5s %10s %8s %30s %20s %s\n" "$ID" "$PROC" "$P" "-$PROCEXE" "-$WPROC" "-$PROCPWS" >> $TMPFD/$AUDITFL

done

line

netstat -tulnp | grep LISTEN | awk ' { print $4, $7 } ' | sed 's/\(.*\)\:/\1 /' | sed 's/\// /g' > $TMPFD/$TMPFL1

printf "%20s %8s %8s %20s\n" "IP" "PORT" "PID" "PROCESS" >> $TMPFD/$AUDITFL

awk ' { printf "%20s %8s %8s %20s\n", $1, $2, $3, $4 } ' $TMPFD/$TMPFL1 >> $TMPFD/$AUDITFL

line

lpnt "#" >> $TMPFD/$AUDITFL

#############################################################

## Print details from Audit file

clear

cat $TMPFD/$AUDITFL

echo "Complete Information is stored at $TMPFD/$AUDITFL"

if [ "$1" == "-a" ]

then

echo "All TCP Listening Process Details" >> $TMPFD/$AUDITFL

netstat -tunlp | grep -v udp >> $TMPFD/$AUDITFL

line

echo "ALL UDP Listening Process Details" >> $TMPFD/$AUDITFL

netstat -tunlp | grep -v tcp >> $TMPFD/$AUDITFL

line

echo "Current established connections - NETSTAT" >> $TMPFD/$AUDITFL

netstat -tunap >> $TMPFD/$AUDITFL

line

echo "Current established connections - SS" >> $TMPFD/$AUDITFL

ss -o state established >> $TMPFD/$AUDITFL

line

lpnt "#" >> $TMPFD/$AUDITFL

fi

#

cleanup

exit 0

#

Размещено на Allbest.ru


Подобные документы

  • Аналіз технічного завдання: призначення розробки, відомості про LAN-мережі. Принципи ідентифікації вузлів комп’ютерної мережі в багатозадачних операційних системах. Проектування компонентів програми. Аналіз синтаксису Bash. Результати тестування.

    курсовая работа [645,6 K], добавлен 23.01.2012

  • Вибір архітектури і топології мережі, її оптимальної конфігурації. Налагодження операційної системи сервера. Технічне та програмне обслуговування комп’ютерної мережі. Розрахунок необхідної довжини кабелю та кількості й типів мережного обладнання.

    дипломная работа [6,2 M], добавлен 15.06.2014

  • Загальна характеристика мережі та мережевого обладнання, а також програмного забезпечення підприємства. Обґрунтування необхідності створення та налаштування комп’ютерної мережі, зміст відповідних заходів. Розрахунок затрат на матеріали і комплектуючі.

    дипломная работа [2,4 M], добавлен 21.06.2014

  • Обгрунтування фізичної топології комп’ютерної мережі. Розробка схеми фізичного розташування кабелів та вузлів. Типи кабельних з’єднань та їх прокладка. Вибір сервера та інсталяція його програмного забезпечення, налаштування ОС Windows 2008 Server.

    курсовая работа [1,4 M], добавлен 07.02.2016

  • Поняття та завдання комп'ютерних мереж. Розгляд проекту реалізації корпоративної мережі Ethernet шляхом створення моделі бездротового зв’язку головного офісу, бухгалтерії, філій підприємства. Налаштування доступу інтернет та перевірка працездатності.

    курсовая работа [2,2 M], добавлен 20.03.2014

  • Розрахунок елементів структурованої кабельної системи, ІР-адресації комп’ютерної мережі, плану прокладання кабельних трас та розміщення робочих місць. Створення моделі КМ у програмі PacketTracer. Особливості настройки її комутаторів та маршрутизаторів.

    курсовая работа [1,6 M], добавлен 15.06.2014

  • Фізичне та логічне представлення топології мереж, кабельна система. Вибір мережевого устаткування. Імітаційне моделювання корпоративної комп’ютерної мережі в NetCracker 4.0. Представлення локальної мережі в Microsoft Visio 2013, економічне обґрунтування.

    курсовая работа [993,5 K], добавлен 17.05.2015

  • Загальна характеристика підприємства "Focus". Огляд програмного забезпечення для створення комп’ютерної мережі. Вибір мережевої служби та протоколів, архітектури, кабелю. Розрахунок обсягу даних, мінімальної конфігурації для серверів та робочих станцій.

    курсовая работа [600,9 K], добавлен 20.05.2015

  • Поняття комп'ютерної мережі як системи зв'язку між двома чи більше комп'ютерами через кабельне чи повітряне середовище. Середовище передачі у комп'ютерних мережах. Передумови інтенсивного розвитку мережних технологій. Мережні сервіси, класифікація мереж.

    реферат [20,8 K], добавлен 13.11.2013

  • Використання мережі із топологією "розподілена зірка", витої пари та концентраторів (для сполучення), мережевої карти із роз'ємами типу RG-45, встановлення операційної системи та монтаж мережі комп'ютерної лабораторії із підключенням до Інтернету.

    контрольная работа [1,0 M], добавлен 12.06.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.