Non-authoritative answer:
Name: vk.com
Address: 93.186.224.244
Name: vk.com
Address: 93.186.224.245
Name: vk.com
Address: 87.240.131.101
Name: vk.com
Address: 87.240.131.102
Name: vk.com
Address: 87.240.131.103
Name: vk.com
Address: 87.240.131.104
Name: vk.com
Address: 87.240.143.245
Name: vk.com
Address: 87.240.143.246
Name: vk.com
Address: 87.240.143.247
Name: vk.com
Address: 87.240.143.248
Name: vk.com
Address: 87.240.188.248
Name: vk.com
Address: 87.240.188.253
Мониторинг сети (выпускная работа)
Основной смысл:
Программа-клиент будет отслеживать траффик (думаю достаточно определять только домены (например: vk.com, forum.codnet.ru)) и время когда было совершено обращение к нему, формировать отчеты в виде log-файлов. По интерфейсу скорее всего только отдельное окно настройки (выбор добавлять в автозагрузку или нет, запускать как приложение или как службу, поле для ввода ip-адреса сервера и выбор времени синхронизации).
Сервер будет получать информацию из log-файлов, перерабатывать её и отправлять в БД (с указанием ip-компьютера, времени, дня и собственно домена). Так же после получения данных за конкретный день отправляется запрос к программе-клиенту на удаление этих log-файлов.
Так же должна быть возможность вывода отчета из БД по конкретным критериям.
Помогайте дополнить описание, предлагайте способы реализации. С какими проблемами я столкнусь и как их решать.
Я никогда такими крупными проектами не занимался, да и не работал с архитектурой клиент-сервер-БД.
Разработка будет происходить в Visual Studio 2010 C#
тут
2) Также тебе нужно будет сниферить запросы к dns, чтоб определять домены по ip. (Также надо учесть что к одному домену может быть несколько ip
и наоборот к одному ip может быть несколько доменов
)
3) Ну а передача логов на сервер и сохранение их в бд - проще некуда (главное структуру таблиц грамотно сделать и если сервер будет не в локальной сети с клиентами - то чтоб он имел реальный ip)
Ну и ещё (это уже плюшко) - в снифер добавь разбор прокси-запросов.
1) Исходники для снифера пакетов можешь взять
2) Также тебе нужно будет сниферить запросы к dns, чтоб определять домены по ip. (Также надо учесть что к одному домену может быть несколько ip
Код:
и наоборот к одному ip может быть несколько доменов
Код:
Domains of Address http://forum.codenet.ru
IP: 46.4.77.42
Number of found hosts: 11
# Host
1 gpslib.net
2 en.p-cards.ru
3 gpslib.ru
4 www.p-cards.ru
5 sources.codenet.ru
6 forum.codenet.ru
7 mikhail.krivyy.com
8 www.mediaterra.ru
9 www.codenet.ru
10 www.gpslib.ru
11 cat.codenet.ru
IP: 46.4.77.42
Number of found hosts: 11
# Host
1 gpslib.net
2 en.p-cards.ru
3 gpslib.ru
4 www.p-cards.ru
5 sources.codenet.ru
6 forum.codenet.ru
7 mikhail.krivyy.com
8 www.mediaterra.ru
9 www.codenet.ru
10 www.gpslib.ru
11 cat.codenet.ru
)
3) Ну а передача логов на сервер и сохранение их в бд - проще некуда (главное структуру таблиц грамотно сделать и если сервер будет не в локальной сети с клиентами - то чтоб он имел реальный ip)
Ну и ещё (это уже плюшко) - в снифер добавь разбор прокси-запросов.
Вот чего я действительно не понял - зачем промежуточный этап хранения в логах, который потом парсит сервер. Какая роль у сервера? Обеспечивать доступ к БД? Тогда зачем логи туда сюда гонять? =)
Цитата: aks
Вот чего я действительно не понял - зачем промежуточный этап хранения в логах, который потом парсит сервер. Какая роль у сервера? Обеспечивать доступ к БД? Тогда зачем логи туда сюда гонять? =)
Не туда-сюда а только туда :) На сервере будет централизованное место для мониторинга и анализа хождения юзеров по интернетам.
Не важно. Суть в том что прослойка с этими логами - лишняя.
Цитата: aks
Не важно. Суть в том что прослойка с этими логами - лишняя.
:facepalm::facepalm: уходи
:facepalm::facepalm: уходи
Т.е. ты предлагаешь чтоб клиентские проги сразу свои логи в бд писали?
Я предлагаю не плодить ненужных сущностей. )
Спасибо за дельное разъяснение. Можешь подсказать литературу, где можно прочитать про "передача логов на сервер и сохранение их в бд"?
Цитата: LawManiak
Спасибо за дельное разъяснение. Можешь подсказать литературу, где можно прочитать про "передача логов на сервер и сохранение их в бд"?
сокет
подключение к бд
ну и дальше там по ссылкам - там и примеры и маны ипр.
Цитата: arrjj
Спасибо, думаю вопросы ещё возникнут по ходу разработки :)
SharpPcap).
Кто-нибудь с ней работал? Про получение IP уже нашел, а смогу ли я ей сниферить запросы к dns?
Подумываю над использованием библиотеки Pcap (
Кто-нибудь с ней работал? Про получение IP уже нашел, а смогу ли я ей сниферить запросы к dns?
Можно сниферить все вплоть до канального уровня.
Нужно что бы сервер слушал порт принимал данные, и отвечал при получении флага.
Ну а клиенты естественно эти данные периодически отправляли...
Мне нужно что бы у серверной программы был Windows Forms интерфейс.
Желательно что бы пример был максимально доступно разобран, я раньше не пользовался WCF и вообще не делал распределенных приложений...
Я так понял - создаем проект Windows Forms, потом добавляем туда службу WCF...
Если не сложно скиньте пример использования WCF что бы и клиентская и серверная часть управлялись через Windows Forms.
Да хоть приложение типа: клиент ввел в текстбокс фразу - нажал отправить, сервер получил, так же вывел в текстбокс.
Пожалуйста, очень нужно разобраться.
upd.
Ладно, хотел в современном решении разобраться, но без помощи увы не получается, так что решил пока посмотреть сокеты, с ними попроще...