|
0 / 0 / 0
Регистрация: 16.09.2013
Сообщений: 12
|
|
ООП дизайн и pcap15.07.2014, 15:02. Показов 1144. Ответов 6
Метки нет (Все метки)
Добрый день. Задача - фильтровать пакеты из pcap файла по заданной пользователем строке. Все бы ничего, но в последующем предстоит расширять число протоколов для фильтрации и число свойств протоколов, по которым осуществляется фильтрация.
Так вот задумка такая - получить пакет из Pcap файла и применить фильтр составленный при помощи паттерна компоновщик ( древовидная структура фильтра в узлах которой содержатся описания протоколов, имеющих свойства для фильтрации). Фильтр принимает указатель на пакет, пробегается по всем своим узлам, сначала проверяет тот ли протокол, протокол пробегается по своим фильтрующим свойствам и говорит "Да фильтр подходит" или "Нет" . Но вот незадача( как генерировать такой фильтр динамически? ведь если использовать для создания Фабрику, то она должна будет знать обо всем - о протоколах, об их свойствах и т.д. Так вот вопрос - как генерить объект фильтра избегая большой связанности компонентов? Вариант делать фильтрацию путем создания и наложения LibPcap фильтра- не катит. Если подскажите в виде паттернов - будет вообще круто
0
|
|
| 15.07.2014, 15:02 | |
|
Ответы с готовыми решениями:
6
Дизайн сайтов (desktop и адаптивный дизайн), баннеров и логотипов PCAP Linux Дизайн выпадающего меню под дизайн обычного |
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
|||||
| 15.07.2014, 15:14 | |||||
|
0
|
|||||
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
||
| 15.07.2014, 17:25 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 16.09.2013
Сообщений: 12
|
|||
| 16.07.2014, 19:29 [ТС] | |||
|
1) Получить сырой пакет, вызвать конкретный фильтр, проверить тот ли пакет, если да, то проверить есть ли фильтрующие условия для данного протокола, если нет -> вызвать фильтр для протокола следующего уровня Добавлено через 8 минут Конкретный фильтр протокола может 1) определить этот ли протокол 2) по возможности определить тип вышележащего протокола 3) проверить есть ли фильтрующее условие, если да, то наложить данный фильтр Вопросов масса 1) Ну создал я композитный фильтр по умолчанию, как в него запихнуть фильтрующее условие для конкретного протокола? стратегия вроде подходит, но тогда эт ужос получается со свойствами протоколов 2) как лучше создавать фильтрующее условие? т.к. условие должно быть связанно со свойством протокола а протокол должен быть внутри простого фильтра (ну как должен быть, мне кажется что так) Если что могу прислать UML того, что сейчас есть Добавлено через 49 минут Если кто знает Open Source аналоги - ссылки в студию. WireShark не предлагать ( там все проще для уже закапчереного пакета - для каждого пакета изначально выстраивается таблица содержащая свойства и значения, потом фильтр переводится в такую же таблицу -> таблицы сравниваются)
0
|
|||
|
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
|
|
| 17.07.2014, 12:33 | |
|
У Вас задача решить поставлненную проблему или поигратся с паттернами?
Мой совет решите так как получается, увидив весь код (или задающюю его часть) будет легче понимать взаимосвязь обьектов. Полагайтесь более на восходящее проектирование.
1
|
|
|
0 / 0 / 0
Регистрация: 16.09.2013
Сообщений: 12
|
|
| 18.07.2014, 14:24 [ТС] | |
|
Главное решить проблему, но и с паттернами поиграться тоже хочется ( для большей практики в данной тематике).
Вчера как раз расчертил полностью схему (изначально понимал, что вряд ли получится хорошо). Да дизайн получился в некоторых моментах такой, что стыдно стало. НО Вы правы на все 100. Я четко увидел все конкретные проблемы на всех уровнях, что помогло легко найти простое решение. В качестве резюме для себя: 1) Не заниматься преждевременной оптимизацией 2) Попытаться сначала решить проблему, а потом уже подумать над более элегантным вариантом 3) Практика, практика, практика... Только она поможет. Большие умные книжки об ООП/проектировании и менне объемные о паттерах не решат за тебя проблему и не дадут шаблонных путей решения. Все связано с конкретным контекстом задачи и предметной области. Вооот)) Ps. причем вчера решил, а сегодня пост увидел))
0
|
|
| 18.07.2014, 14:24 | |
|
Помогаю со студенческими работами здесь
7
Не компилируется проект с Pcap Pcap для CLI PCap и получение html кода
PCAP и связанные с ним ошибки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит:
токи, напряжения и их 1 и 2 производные при t = 0;. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|