LINUX.ORG.RU
ФорумAdmin

Как узнать Sequense number в python [tcp]

 ,


0

1

Добрый день, хочу задать вопрос... Как узнать Sequense number на прослушиваемом сокете в python? Хотел бы обединить пакеты в одну цепочку, но не зная номера секции такое не выйдет:( Возможно ли это сделать при помощи getsockopt? Если да, то как?) Благодарю за подсказки


Я тебя не понимаю. Берешь сокет, пишешь/читаешь туда, ОС делает все остальное, в том числе разбивку данных на куски. Зачем тебе sequence number?

Deleted
()
Ответ на: комментарий от Deleted

Задачку по сетям решает.

Ловишь пакет уровнем выше, берешь библиотеку для расковыривания пакетов и расковыриваешь. На каком из этих пунктов ты застрял?

t184256 ★★★★★
()
Ответ на: комментарий от Deleted

я перехватываю пакеты, а не формирую, пишу мини-сниффер, хочу посмотреть, какие пакеты из какой цепочки

trix0
() автор топика

tcp сокеты в этом точно не помогут

Harald ★★★★★
()

Такое с обычными TCP-сокетами не получится сделать. Нужно либо использовать RAW-сокеты с userspace tcp-стек, либо, как вариант, перехватывать свои же сокеты RAW-сокетами (не уверен, что так можно, но, вроде, можно), либо перехватывать их через NFQUEUE.

Оба способа требуют root (вернее, CAP_NET_ADMIN).

ValdikSS ★★★★★
()
Последнее исправление: ValdikSS (всего исправлений: 1)
Ответ на: комментарий от ValdikSS

Возможно, мы друг-друга не поняли... у меня так сырые сокеты, трафик перенаправляю при помощи правила в iptables. На забинденный сокет летит трафик, на данном форуме подсказали, как узнать оригинальный адр. назначения и порт при помощи getsocketopt... Может быть с ее помощью можно узнать и seq, ack? root - не проблема, да и порты выше 1024, кажется, не требуют рута...

trix0
() автор топика
Ответ на: комментарий от trix0

Если у вас уже RAW-сокет, то он должен начинаться с TCP-заголовка (или с IP-заголовка, если включен IP_HDRINCL). Открытие RAW-сокета требует root. У вас точно RAW-сокет?

ValdikSS ★★★★★
()
Ответ на: комментарий от ValdikSS

да, видимо, я опять все напутал, прошу прощения) А случайно нельзя узнать флаги пакета? Там psh, syn, fin таким образом?

trix0
() автор топика
Ответ на: комментарий от trix0

Если у вас RAW-сокет, то прочтите их из TCP-заголовка пакета. Если не RAW, то см. мое первое сообщение в этой теме.

ValdikSS ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.