Всем привет. Учусь работать с сырыми сокетами, написала скриптик для

работы с контроллером двери, под линуксом все замечательно работает а под фри ни в какую не хочет.
Код
https://pastebin.com/0KcALrvT
tcpdump
https://pastebin.com/iJ9kmrf8

Посмотрев в вайршайке я вижу, что у нас передается в данных 36 байт, а должно передаваться 8
Неправильно
Data: 450000247244000080110000c0a8fb11c0a8fb8d0ce90ce9001000000107fe3200002b02
Правильно
Data: 0107fe3200002b02

Что я делаю не так?

8 ответов

15 просмотров

4500... это заголовок IP-пакета, если хочется его вручную задавать, надо IP_HDRINCL включать, иначе система сформирует IP-заголовок сама, см. man 4 ip

Александра- Автор вопроса
Vadim Goncharov
4500... это заголовок IP-пакета, если хочется его ...

setsockopt(SOCKET, getprotobyname('udp'), IP_HDRINCL, pack("H*", '450000247244000080110000c0a8fb11c0a8fb8d0ce90ce900100000')); $packet = pack("H*", '0107fe3200002b02'); Спасибо, это частично решило мою проблему, теперь данные передаются правильно т.е. только 8 байт, но по прежнему ругается на неизвестный протокол 00:44:11.537946 90:e2:ba:49:a6:7c > 02:00:00:8e:ea:fe, ethertype IPv4 (0x0800), length 42: (tos 0x0, ttl 64, id 25341, offset 0, flags [none], proto unknown (255), length 28, bad cksum 0 (->9f05)!) 192.168.251.1 > 192.168.251.141: ip-proto-255 8

а нахрена так через жопу если это тривиальный UDP на порт 3305?

Александра
setsockopt(SOCKET, getprotobyname('udp'), IP_HDRIN...

советую всё же не хардкодить IP-заголовок, а заполнить нужные его поля и дать системе посчитать хоть ту же чексумму

Александра- Автор вопроса
Vyacheslav Olkhovchenkov
а нахрена так через жопу если это тривиальный UDP ...

Затем, что нужно подменять исходный айпи адрес на адрес сервера, если отправлять пакет со своим адресом то контроллер не реагирует

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта