День добрый.Использую утилиту IP Tools 1.98.08.Возьмём.к примеру,следующий пакет: PHP: 0x: 0045 00 00 28 D0 B8 40 00 80 06 72 91 52 83 05 8B 0x10: 40 0C 1F 6C 04 22 14 46 0D DF 3D C4 78 E2 AD0A 0x20: 5010 FD59 70FC 0000 http://ru.wikipedia.org/wiki/TCP К примеру,возьмём порт источника.Судя по гуглу,это должны быть биты 4-9,т.е 2-3-ий байты.Но сниффер показывает байт,расположенный на строке 0х10 - 0422.Не странный ли результат и кому теперь верить ? Хоть под размер подходит...
Если не ошибаюсь, то порт отправителя должен находится в 34-35 байтах, плюс интересно смотря какая задача перед тобой стоит, все же стоит учитывать, что если пакет тэггированный, то будет смещение на 4 байта Странное значение если получилось, не забывай проверять! Смотри по какого порта ты отправляешь пакет, и соответственно значение которое ты получишь в нужных тебе байтах, будет номер порта только в шестнадцатиричной системе p.s. Если не линух а винда, то альтернатива wireshark'у - Ethereal
Это IP пакет. До TCP еще дойти надо. Так смотреть удобнее: Code: 45 00 00 28 <- IPv4 D0 B8 40 00 80 06 72 91 52 83 05 8B <- IP-адрес отправителя 40 0C 1F 6C <- IP-адрес получателя 04 22 14 46 <- Отсюда уже начинается TCP (исходя из ого, что длина заголовка этого пакета = 5) 0D DF 3D C4 78 E2 AD 0A 50 10 FD 59 70 FC 00 00 Исходя из дампа: ип:порт отправителя - 82.131.5.139:1058 получателя: 64.12.31.108:5190 (ICQ)
oRb, ну я имел ввиду TCP/IP соответственно. Вот пример пакета: 0000 00 01 03 fb 60 85 00 17 31 bb fd a1 08 00 45 00 0010 00 30 4a 6c 40 00 80 06 55 6b c0 a8 00 02 5b 14 0020 3f 32 10 7a 2f 20 9c e4 17 cf 00 00 00 00 70 02 0030 ff ff 33 e1 00 00 02 04 05 b4 01 01 04 02 Подчеркнул порт источника! Соответственно это 0-1 байты TCP или 34-35 байты TCP/IP! Все же уровни OSI путать не стоит, IP это третий уровень - сетевой, а TCP это Транспортный уровень, собственно то что нужно!