![]() |
Структура IP пакета
Здрасте всем зашедшим!
Требуется небольшая консультация... Вот небольшой кусок кода от сниффера(функция обработки): void handler(u_char *u, const struct pcap_pkthdr *hdr,const u_char *data) { struct ether_header *eh; struct ip *iph; struct tcphdr *tcph; u_char *ptr; //пропущен небольшой кусок кода /*положим что у нас ip пакет с данными - как говорят в физике - в идеальных условиях*/ /*выцепляем заголовки*/ eh = (struct ether_header *)data; iph = (struct ip *)(data+sizeof(*eh)); tcph = (struct tcphdr *)(data+sizeof(*eh)+sizeof(*iph)); /*остаются данные*/ ptr=data+sizeof(*eh)+sizeof(*iph)+sizeof(*tcph); //пропущен кусок кода } Положим, что размер пакета максимальный. Допустим ловим все пакеты по порту 80. После того как убрали все заголовки, вывели данные, вот, что видим: HTTP/1.1 200 OK Date: Tue, 20 Aug 2002 04:31:38 GMT Server: Apache/1.3.14 (Unix) rus/PL30.0 Connection: close Content-Type: text/html <html> <head> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251"> <meta NAME="GENERATOR" CONTENT="Microsoft FrontPage 3.0"> <title>Ââåäåíèå â ïðîòîêîëû Internet (÷àñòü 3) </title> </head> и т.д. до конца данных. Вопрос следущий: у данных есть своя структура? то есть есть ли возможность убрать заголовок HTTP/1.1 200 OK Date: Tue, 20 Aug 2002 04:31:38 GMT Server: Apache/1.3.14 (Unix) rus/PL30.0 Connection: close Content-Type: text/html и оставить только сам код странички? Аналогично для всего остального... Заранее спасибо всем ответившим! |
Ya ne sowsem ponyal, chto ti imeesh w widu, no esli ti sprashiwaesh, kak otdelit HTTP header ot HTTP data - oni delyatsya CRLF'om (t.e. pustoi strokoi). Ishi po kodam 0x0d, 0x0a (esli server UNIX'owskij - stawitsya kombinaciya 0x0a, 0x0a (\n)).
|
| Часовой пояс GMT +4, время: 08:32. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.