Доступ к esp8266 по сетевому имени

ikari81

New member
Исходные данные такие:
Машина. В машине магнитола на андроиде. В сумке телефон с включенной точкой доступа. Магнитола и esp подключаются к ней. На магнитоле пока браузер, обращающийся по ip http esp. Сейчас ip выдаваемый dhcp esp можно посмотреть только вручную (сделал отправку его себе на почту). Полученный адрес вбиваю в браузер и для отладки пока нормально.
Но в будущем надо сделать более универсально. DNS на телефоне с добавлением статических записей сделать не могу, да и не уверен, что даже на рутованных это возможно.
В случае, если дорасту до нативного приложения под андроид, все относительно просто: зная подсеть и диапазон адресов раздаваемых dhcp точки доступа, пингуем адреса по порядку, с ответившим пробуем установить tcp-соединение например по порту, на котором висит web и в случае удачи это будет искомый адрес.
Может есть другие, более простые способы?
 

ikari81

New member
Я пробовал пример ардуино из коробки в связке есп-микротик-андроид, андроид есп не видит. Win7 с установленным бонжуром аналогично.
 

Victor

Administrator
Команда форума
Я пробовал пример ардуино из коробки в связке есп-микротик-андроид, андроид есп не видит. Win7 с установленным бонжуром аналогично.
может быть тогда у вас была включена изоляция клиентов (выключен Forwarding)
попробуйте этот пример, должно работать https://github.com/esp8266/Arduino/.../examples/mDNS_Web_Server/mDNS_Web_Server.ino
 

ikari81

New member
может быть тогда у вас была включена изоляция клиентов (выключен Forwarding)
попробуйте этот пример, должно работать https://github.com/esp8266/Arduino/.../examples/mDNS_Web_Server/mDNS_Web_Server.ino
Сработало на пк, когда сделал паузу между получением WL_CONNECTED и вызовом MDNS.begin. С пк открывается, с андроида нет, хром ругается на что не может найти днс имя, но всякие bonjour браузеры при сканировании esp находят.
 

Алексей.

Active member
Имя, которое в mDNS указываю,
C++:
MDNS.begin("esp-clock-1");
авахи разрешает в домене local
Bash:
alex@lenovo-e480:~$ avahi-resolve-host-name esp-clock-1.local
esp-clock-1.local    192.168.11.119
а nslookup в обратном поиске DNS находит имя хоста, которое я пока не менял, в домене lan
Bash:
alex@lenovo-e480:~$ nslookup 192.168.11.119
119.11.168.192.in-addr.arpa    name = ESP-39103E.lan.

Authoritative answers can be found from:
немножко установим имя хоста перед WiFi.begin
C++:
  WiFi.hostname("esp-clock-1");
  WiFi.begin(SSID, PASS);
ну и контрольный обратный DNS
Bash:
alex@lenovo-e480:~$ nslookup 192.168.11.119
119.11.168.192.in-addr.arpa    name = esp-clock-1.lan.

Authoritative answers can be found from:
и прямой
Bash:
alex@lenovo-e480:~$ host esp-clock-1.lan
esp-clock-1.lan has address 192.168.11.119
Браузером в домене lan находится теперь по исправленному имени хоста.
 

ikari81

New member
На пк все работает, на андроиде в хроме - нет. Внешние программы на андроиде имя находят. Для универсальности видимо придется делать нативное.
 

ikari81

New member
Какая версия андроида? Я проверил на нескольких смартах, паре планшетов, магнитоле. Там версии 5-6.
 

Алексей.

Active member
На роутере работает разрешение ip адреса по имени хоста, а на точке доступа на андроиде 6 не работает.
Подключил к точке доступа на андроиде 2 компа и esp.
Обратный dns по ip адресам работает как для компов так и для ecp, а получение ip по имени хоста не работает ни для esp ни для компа.
С одного компа не удается получить ip другого компа по имени если использую точку доступа на смартфоне.
 
Сверху Снизу