Я разбираю пакет TCP/IP в строковый формат. Каков наилучший способ структурирования и хранения? Должен ли я хранить его как структуру ctypes, класс python, словарь или какой-либо другой способ? Каковы плюсы и минусы каждого метода?Python. Класс, Строка, Словарь?
3
A
ответ
8
Вы должны использовать класс. Это дает вам максимальную гибкость для роста в будущем.
Словари имеют более подробный синтаксис для доступа к их содержимому и не позволяют добавлять методы, если они вам понадобятся.
ctypes действительно предназначен для доступа к структурам, упакованным для использования в других API. Если ваши данные будут оставаться на Python, единственное преимущество в том, что оно будет более компактным в памяти.
1
Im большой поклонник словарей для таких вещей, как это, потому что
- Вы можете делать вещи, как thisPacket [ «srcPort»]
- Вы можете просто засунуть свои пакеты в нечто вроде MongoDB и запросить их позже (то есть дайте мне каждый пакет, входящий в порт 80, и был из какой-то подсети с определенным набором флагов)
1
Я большой поклонник подробных требований.
Не имея этих, я бы пошел с именованным кортежем.
Вы можете делать такие вещи, как thisPacket.srcPort
.
Вы можете просто засунуть свои пакеты в нечто вроде MongoDB и запросить их позже в прохладных способах
должна быть каким-то библиотека справиться с этим ... –
Есть ли способ, что вы могли бы ** udpate * * вопрос с вашим пониманием (а) ваших требований и (б) как различные структуры соответствуют или не соответствуют вашим требованиям. «Разборка пакета TCP/IP» слишком расплывчата, чтобы дать нам полезные рекомендации. –