• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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 каналов информации от разных датчиков. Ну например мне нужна информация только по одному датчику, но все равно нужно принимать весь пакет. А что уже с ним делать, я уже научился!)
Вопрос возможно риторический, возможно из-за комутаторов и роутеров не получится перехватить обмен, но хотябы узнать, возможно ли принять пакет посланный не мне а кому-то другому?
 
Сверху Снизу