Форум программистов, компьютерный форум, киберфорум
Python: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
5 / 4 / 2
Регистрация: 21.10.2021
Сообщений: 132

Пакеты протокола Stun

06.09.2023, 14:21. Показов 1391. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как я могу перехватить пакеты протокола Stun с помощью Python?
Python
1
2
3
4
5
6
7
8
9
10
11
12
from scapy.all import *
 
def packet_handler(packet):
    if packet.haslayer(UDP) and (packet[UDP].dport == 3478 or packet[UDP].sport == 3478):
        raw_data = bytes(packet[UDP].payload)
        if len(raw_data) >= 20:
            msg_type, msg_length, magic_cookie = struct.unpack('!HHI', raw_data[:8])
            if magic_cookie == 0x2112A442: # This is a STUN packet
                print('Detected STUN packet: Type: {} Length: {} Magic Cookie: {}'.format(msg_type, msg_length, magic_cookie))
                packet.show()
 
sniff(filter='udp', prn=packet_handler)
Пробовал так, но stun пакеты все равно точно не ловятся, что я делаю не так?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.09.2023, 14:21
Ответы с готовыми решениями:

STUN сервер
Привет. Был тут на собеседовании, тестовое не осилил. Однако, хотелось бы разобраться, тк ранее с UDP не работал. "Написать...

Использование STUN
Всем привет! Недавно решил реализовать сетевое взаимодействие между компьютерами с серыми IP. Погуглил, нашёл решение - STUN. Даже...

Использование STUN
Привет! У меня возникла проблема при создании простого p2p чата. Поскольку мой компьютер подключен к интернету через роутер, как,...

1
 Аватар для kazak
3604 / 2744 / 356
Регистрация: 11.03.2009
Сообщений: 6,306
06.09.2023, 19:21
Протокол stun к питону не имеет никакого отношения, тему уместнее перенести в раздел по сетям.
На вскидку после гугления ынтырнетов:
Цитата Сообщение от Huobase Посмотреть сообщение
Python
1
if packet.haslayer(UDP) and (packet[UDP].dport == 3478 or packet[UDP].sport == 3478):
1) у stun есть два вида запросов binding request/response использует udp и shared secret request/response использует tcp, поэтому фильтрация по протоколу отпадает.
2) stun-сервер должен поддерживать работу с двумя ip и двумя портами во всех комбинациях, порт 3478 общепринятый порт по умолчанию для сервера, поэтому фильтрация по порту тоже никакой гарантии не дает, у гуловских серверов, опять же если верить ынтырнетам, дефолтный порт 19302 к примеру.
Цитата Сообщение от Huobase Посмотреть сообщение
как я могу перехватить пакеты протокола Stun
Подозреваю, только анализируя содержимое пакетов.
Цитата Сообщение от Huobase Посмотреть сообщение
Python
1
2
msg_type, msg_length, magic_cookie = struct.unpack('!HHI', raw_data[:8])
 if magic_cookie == 0x2112A442: # This is a STUN packet
интересно, что за магические числа?)
Если кратко, stun-сообщение состоит из хидера и самого тела.
Хидер длиной 20 байт:
2 байта - тип сообщения,
2 байта - длина тела сообщения без хидера,
16 байт - ID транзанкции
Типы сообщений:
0x0001 : Binding Request
0x0101 : Binding Response
0x0111 : Binding Error Response
0x0002 : Shared Secret Request
0x0102 : Shared Secret Response
0x0112 : Shared Secret Error Response
Нетрудно догадаться, что типы request могут быть только в исходящих пакетах, а response - во входящих.

Дальше набор блоков с атрибутами, так же:
2 байта - тип атрибут,
2 байта - длина содержимого атрибута
N байт - содержимое атрибута.
Полное описание https://datatracker.ietf.org/d... section-11
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.09.2023, 19:21
Помогаю со студенческими работами здесь

QUdpSocket + STUN
Доброго времени суток. Пару вечеров грязного времени посидел с WireShark и манами по протоколу STUN - смог отправить запрос и получить...

Сетевое программирование, STUN
Здравствуйте, не нашел подходящего раздела для моего вопроса, поэтому решил написать в разделе языка, на котором учусь писать. У меня с...

Соединение с сервером STUN
Здравствуйте, форумчане.

Нет ответа от STUN сервера
Здравствуйте. В интернете много теории касательно того, как пробросить IP за NAT, но саму реализацию на с++ я найти не смог. Пробовал...

P2P чат с использованием STUN
Здравствуйте, хочу написать чат между двумя пользователями в интернете с помощью серверов STUN. Прошу объяснить принцип работы такого чата,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru