определение HTTP-пакетов - PullRequest
       18

определение HTTP-пакетов

0 голосов
/ 16 апреля 2010

Приветствие

как можно из захваченных пакетов определить, используя sharppcap, является ли пакет http пакетом или нет?

и можем ли мы определить frpm TCP-пакеты, если пакет HTTP или нет?

Ответы [ 3 ]

3 голосов
/ 16 апреля 2010

Согласно rfc2616 - протокол передачи гипертекста - HTTP / 1.1 :

Версия сообщения HTTP указывается в поле HTTP-Version в первой строке сообщения

Таким образом, вы можете проверять пакеты и сканировать текст версии HTTP в заголовках сообщений и / или других известных полях протокола HTTP. Хотя этот метод может быть не на 100% точным, если сообщение разбито на несколько пакетов, он, вероятно, будет достаточно хорош, по крайней мере, в качестве первого отрезка.

2 голосов
/ 16 апреля 2010

Я автор / сопровождающий sharppcap/packet.net.

У меня есть несколько классов, которые выполняют tcp повторную сборку и http синтаксический анализ, которые используются в сложном приложении для мониторинга сети для идентификации и отслеживания http sessions. Они полностью протестированы и хорошо прокомментированы.

Они доступны для лицензирования либо на двоичном, либо на исходном уровне.

Редактировать: Зачем голосовать? На разработку кода и тестов потребовались сотни часов, и это решение было использовано повторно. Это, безусловно, стоит рассмотреть, прежде чем повторно реализовать ту же функциональность.

1 голос
/ 16 апреля 2010

Похоже, вы смотрите на один фрагмент TCP. Если это произошло в начале сообщения, в первой строке будет версия HTTP, но если вы просто вытаскиваете случайные пакеты из сети и надеетесь, что сможете узнать, что они HTTP, вам не повезло - во фрагментах TCP нет ничего, что указывало бы на то, что в них. Единственный способ узнать это - посмотреть на весь разговор.

...