• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Вопрос Перехват пакетов для других компьютеров в той же сети к которй подключен ESP8266

kobb500

New member
Возможен ли такой вариант, когда ESP8266 подключен к сети и перехватывать пакеты посланные другим компьютерам от других компьютеров. Такой себе "слушатель".
Я читал про снифферы на ESP8266, но это не то, они перехватывают пакеты не подключаясь к сети.
У меня задача другая, перехватывать пакеты обмена между компьютерами в той же сети.
Я хочу перехватывать пакеты с определенного мак адреса или IP и по определенному порту, получать их и обрабатывать.
Если быть точнее, то перехватывать обмен между двумя MODBUS TCP устройствами, там длинна пакетов не большая.
Для начала я хочу выяснить, возможно ли такое?
 

kobb500

New member
возможно если не шифруется либо вы знаете ключ.
А почему надо именно перехватывать а не принимать?
Например, я делаю так
ESP посылает широковещательный пакет на определенный порт
и все другие esp могут принять этот пакет по этому порту.
В сети между устройствами нет шифрования никакого, они гоняют между собой пакеты с информацией по 6 - 20 байт.
Широковещательные пакеты они не умеют слать а если и умеют, то это уже другой режим работы который не желателен для их сети.
В общем там не ESP а ПЛК (промышленные контроллеры). Я могу обратится напрямую к ПЛК с другого устройства он мне ответит, но при этом не ответит серверу, ну и в общем у сервера будет в этот момент сбой, что не получил ответ от устройства. Там одноранговая сеть, в которй есть только один мастер (это сервер) а остальные все подчиненные. Вот поэтому и не хочется вклиниваться в их иерархию, хотя я могу в конечно выделить в нужном мне ПЛК с которого мне нужно получать данные, я там могу дописать еще один модбас слейв, котоый будет чисто для меня отвечать.
Но мне лень пока туда лезть, пока все хорошо работает.
Ну и вот как-бы возникла идея, сделать такого вот "молчаливого слушателя", что-то на подобии wireshark или smartsniff, только для одной цели, слушать один порт и все, ну вот как-то так)
 

kobb500

New member
подведу итоги, того что понял.
-----------------
1) это беспроводная сеть wifi обмен по протоколу TCP/IP.
2) формат кадра вам неизвестен.
3) лесть на сервер вам лень
-------------------
не ясно, какой уровень Вашей подготовки, что есть из документации и на каких средствах Вы это будете решать.
для начала посмотрите пакеты с помощью WireShark.
Если увидите, то задача упрощается.
.
У меня в распоряжении только контроллеры ARDUINO, STM32, ESP8266 и ESP32, ну то что может работать с сетью.
Raspberry PI есть, есть конечно и промышленные контроллеры ПЛК160 от ОВЕН и Allen-Bradley)))
Но если использовать Raspberry PI или ПЛК, то смысла уже нет, проще тогда уже компьютер поставить или ту же Raspberry PI использовать.
Тогда конечно самый простой вариант для меня - это действительно на сервере сделать переадресацию или в устройстве программно добавить еще один канал для запросов и ответов.
Но мне интересно сделать это дешево и сердито.
Я подключался к к сети и видел пакеты обмена в WireShark на 502 порту.
Сервер шлет устройству запрос: 00 01 00 00 00 06 01 03 00 00 00 06
Устройство ему отвечает: 00 01 00 00 00 0F 01 03 0C 01 79 00 4A 00 58 00 0B 00 45 00 36
Меня интересует только ответ устройства и только последние 12 байт в которых полезная информация, в 12 байтах передаётся 6 параметров, это как-бы 6 каналов информации от разных датчиков. Ну например мне нужна информация только по одному датчику, но все равно нужно принимать весь пакет. А что уже с ним делать, я уже научился!)
Вопрос возможно риторический, возможно из-за комутаторов и роутеров не получится перехватить обмен, но хотябы узнать, возможно ли принять пакет посланный не мне а кому-то другому?
 
Сверху Снизу