2015-12-05 5 views
0

У меня есть модуль ESP8266 (в частности, Cactus Micro r2), который может подключаться к локальной сети, а затем общаться с моим локальным сервером по протоколу HTTP. Однако я должен предоставить SSID сети, пароль и IP-адрес моего сервера.Autodetect локальный сервер с ESP8266

Возможно, модуль ESP может отправлять HTTP-трансляцию всей сети с определенным заголовком? И тогда сервер, распознающий заголовок, будет отвечать, поэтому его IP-адрес будет обнаружен автоматически? Если не с HTTP, возможно ли это с UDP? И есть ли схема обмена для клиента и сервера, чтобы обнаружить друг друга?

Единственное решение (или, скорее, обходное), которое я изобрел до сих пор, состоит в том, чтобы перебирать весь диапазон адресов локальной подсети (обычно это 192.168.1.1-192.168.1.254) и пытаться инициировать обмен данными , Однако это очень медленно (если IP-адрес сервера находится в верхней половине диапазона). Кроме того, он не будет работать в сети 10.0.0.0 (не говоря уже о чистых сетях IPv6 ...).

+0

Для разрешения имени -> IP-адреса требуется DNS-сервер. И, конечно же, сервер должен быть зарегистрирован в DNS. Вы могли бы, конечно, обмануть и сохранить запись «последнего известного адреса», а затем начать с этого адреса в следующий раз. Но DNS - это «правильное» решение. –

+0

Это еще хуже: D Есть ли, по крайней мере, возможность получить все использованные IP-адреса? Что-то вроде команды arp -a в командной строке Windows? Это значительно сократило бы количество повторяющихся IP-адресов ... – Storm

+0

'arp -a' просто отслеживает, какие IP/MAC-адреса разговаривали с вашим компьютером (или с вашей машиной поговорили). Если он не «знает» сервер, то он, вероятно, тоже не разговаривал с ним. –

ответ

1

Если вы хотите, чтобы ваш особ, чтобы найти выделенный сервер в любой частной сети, не требуя DNS и другие настройки, это может быть ответом:

  1. На стороне сервера, осуществлять UdP трансляцию. Это передает информацию о соединении между несколькими интервалами (например, 2 сек). Это походит на wifi beaconing (или реклама bluetooth).
  2. На стороне esp esp должен знать ssid. Затем подключитесь к сети. Начать прослушивание широковещательного порта для spesific сообщение.
  3. После получения сообщения, проанализируйте его и проверьте (аутентифицировать и т. Д.), Затем получите параметры из сообщения, которое показывает сервер.
  4. Наконец, используйте параметры для связи с сервером и отключите прослушиватель вещания.
Смежные вопросы