@duoman

Python разбор tcp пакета?

Необходимо разобрать tcp пакет по битам.
Дано 16 байт tcp пакета. Мне нужно его разобрать на байты и биты. Хочу для этого использовать python тк он мне больше всего знаком.
Грубо говоря пакет поделен на параметры:
1 - байт int число
2 - байт должен содержать 4 параметра по два бита на каждого
3 - 6 байт 32 битное число
и тд.
для разбора пакета написал небольшой код:
f = open('file.bin','rb')
b = f.read()
packet[0] = b[0]
packet[1] = b[1]
packet[2] = struct.unpack('>I',b[2:6])

Тут начались вопросы чем вытащить из b[1] нужные мне биты.
С одной стороны задача простая. Но за нехваткой опыта не знаю какими методами решить данную задачу.
Кто сталкивался наведите меня на правильное решение по разбору бинарных данных.
Также не знаю чем воспользоваться что бы вывести данные в двоичной системе на дисплей. В интернете в основном выкладывают примеры по работе с байтами а вот как работать с битами... Возможно я не правильно задаю вопросы
  • Вопрос задан
  • 801 просмотр
Пригласить эксперта
Ответы на вопрос 1
un1t
@un1t
Берешь значение байта. В нем 8 битов. Чтобы узнать значение бита нужно использовать логическую операцию &

Наример, прочитали значение байта в переменную x
x & 1 # значение первого бита
x & 1 << 1 # значение втроого бита
x & 1 << 2 # значение третьего бита

операция << это побитовый сдвиг

загугли что-то вроде "python битовые операции"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы