Порядок вещей - PullRequest
       1

Порядок вещей

0 голосов
/ 17 августа 2011

У меня есть снифер в C ++, где я получаю IP-адрес источника, IP-адрес назначения, контрольный бит и порядковый номер. Я также получаю заголовок IP и затем информацию TCP. Я хочу получить тип содержимого пакетов. Нужно ли собирать пакеты, чтобы сделать это? Или я могу использовать http запрос и ответить, чтобы получить тип содержимого пакетов. Любая помощь приветствуется, спасибо!

1 Ответ

0 голосов
/ 17 августа 2011

Нет «типа контента».TCP будет предоставлять только поток октетов для уровня выше TCP для интерпретации.Если вы перехватываете HTTP через TCP, вам придется собирать пакеты и самостоятельно разбирать HTTP.

Рассматривали ли вы возможность использования Wireshark ?

Update

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

Анализ содержимого HTTP намного сложнее.Первые заголовки всегда в ASCII.Они определяют тип контента и длину контента.Это часть типа контента, которая хитрая.Материал может быть закодирован различными способами кодирования, и они могут быть охвачены еще одним методом кодирования (поток zip, SSL и т. Д.).

Возможно, было бы неплохо увидеть, как это делают Wireshark и WinPcap .Я не уверен, содержит ли WinPcap фильтры и декодеры для HTTP (в основном приносящие вам содержимое HTTP) или нет.В любом случае, возможно, стоит проверить код.

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