Извлечь информацию заголовка HTTP, используя Packet.Net - PullRequest
0 голосов
/ 06 января 2012

Я хотел бы извлечь информацию заголовка HTTP, используя Packet.Net.Я использую SharpPcap для захвата пакета и мне нужно получить доступ к полю User-Agent в пакете TCP.Если я правильно понимаю, Packet.Net используется для анализа захваченного пакета.Помощь будет оценена в этом отношении.Я попытался отобразить пакет TCP со следующим кодом, но у меня отображаются байты.Я использую C # в качестве языка разработки.

       private static void device_OnPacketArrival(object sender,CaptureEventArgs packet){

       Packet p =Packet.ParsePacket(packet.Device.LinkType,packet.Packet.Data);

       System.Text.ASCIIEncoding ASCII = new System.Text.ASCIIEncoding();
       String StringMessage = ASCII.GetString(p.Bytes);


       Console.WriteLine(StringMessage);

   } 

1 Ответ

1 голос
/ 01 февраля 2012

Packet.Net в настоящее время не поддерживает http-декодирование.Поскольку сообщения http могут быть разделены между несколькими пакетами, кажется, что хорошим подходом было бы сначала добавить поддержку, позволяющую использовать следующие соединения tcp, а затем добавить обнаружение сеанса http и синтаксический анализ поверх потока данных tcp.Попытка синтаксического анализа данных http для каждого пакета может работать для заголовков данных или некоторых сообщений http, но это не надежное решение, так как это лишит возможности получать полное содержимое сообщения http, которое может составлять несколько килобайт.в размере.

(У меня есть коммерческая библиотека, основанная на SharpPcap / Packet.Net, которая добавляет отслеживание сеанса tcp и отслеживание сеанса http и расшифровывает. Отправьте здесь свое электронное письмо, если хотите, чтобы я отправил вам электронное письмо с более подробной информацией.)

...