Показать сообщение отдельно
Старый 20.08.2002, 08:47     # 1
Sink
Guest
 
Сообщения: n/a

Question Структура 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

и оставить только сам код странички? Аналогично для всего остального...

Заранее спасибо всем ответившим!