Есть небольшой код который ловит IP пакеты и читает их заголовки:
typedef struct IPHeader {
UCHAR iph_verlen; // версия и длина заголовка
UCHAR iph_tos; // тип сервиса
USHORT iph_length; // длина всего пакета
USHORT iph_id; // Идентификация
USHORT iph_offset; // флаги и смещения
UCHAR iph_ttl; // время жизни пакета
UCHAR iph_protocol; // протокол
USHORT iph_xsum; // контрольная сумма
ULONG iph_src; // IP-адрес отправителя
ULONG iph_dest; // IP-адрес назначения
} IPHeader;
recv( s, Buffer, sizeof(Buffer), 0 );
IPHeader* hdr = (IPHeader *)Buffer;
Как прочитать сам пакет ? И узнать порт по которому он шел ?
(Используется winsock2)
06.05.03 12:11: Перенесено из 'C/C++'
Здравствуйте, shedon, Вы писали:
S>Как прочитать сам пакет ? И узнать порт по которому он шел ?
S>(Используется winsock2)
S>
используй raw сокеты, тема уже обсуждалась, например,здесь —
http://www.rsdn.ru/Forum/?mid=238171Автор: Linuxoid
Дата: 10.04.03
Здраствуйте вы написали:
это tcp, udp или icmp... более точно тебе скажет поле iph_protocol. эти
протоколы и содежат информацию о портах.
Но в iph_protocol у меня приходит только протокол. А портов там нету.