| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Сети > Разбор TCP header |
| Автор: Kappac 17.2.2008, 22:45 |
| Доброго времени суток! Получаю пакет с помощью pcap, разбор ethernet и ip заголовков проходит нормально, но при попытке определить порты источника\приемника в tcp\udp возвращаются абсолютно не раельные числа. Как правильно представить номера портов? P.S. Мои исходники прилагаются. |
| Автор: jonie 18.2.2008, 23:44 |
| несмотря исходники используете internet формат чисел, конечно же ? |
| Автор: Kappac 19.2.2008, 12:26 |
| И с преобразованием и без, результаты в любом случае не правильные. |
| Автор: jonie 19.2.2008, 21:12 |
| значит не оттуда брешешь ... несилен в никсах: а как там насчет выравнивания полей в структурах ? |
| Автор: Kappac 20.2.2008, 15:49 |
| Дело не в никсах, RFC-то везде RFC, вот потому и код положил... |
| Автор: jonie 21.2.2008, 11:05 |
| rfc пишется с расчетом align=1byte, а у тя в структурах как ?... |
| Автор: Kappac 25.2.2008, 14:15 |
| У меня в структурах с учетом BigEndian и LittleEndian памяти, но к портам это значение не имеет, так как их номера хранятся в 2 байтах(short). |
| Автор: jonie 25.2.2008, 19:27 | ||
а я грю про выравнивание, а не про формат слов.
|
| Автор: turist 25.2.2008, 19:30 | ||
Вот в этом месте вы передаёте не IP пакет, а Ethernet. Надо было: getTcp((u8 *)packet+ETH_HLEN, ip->ihl) из linux/if_ether.h: #define ETH_HLEN 14 |
| Автор: Kappac 26.2.2008, 14:32 |
| jonie, turist, спасибо, вечером проверю и отпишусь! |
| Автор: fish9370 26.2.2008, 17:31 | ||
http://www.tcpdump.org/pcap.htm
|
| Автор: Kappac 26.2.2008, 17:59 |
| fish9370, отдельное спасибо, за хороший пример! |
| Автор: Kappac 27.2.2008, 10:59 |
| turist, fish9370, спасибо за наводку! Действительно не правильно переходил по указателю! Тема закрыта! |