Как обращаться с веб-сервером ESP8266 только к точке доступа?

Я разрабатываю приложение, которое должно быть несколько безопасным, поэтому для настройки параметров оно обрабатывает прерывание GPIO (от кнопки), чтобы открыть сервер, что позволяет вам настроить его. Проблема в том, что он настроен на отправку электронной почты, поэтому он подключен к Wi-Fi.

Имея это в виду, мне нужно определить источник соединения, чтобы я мог передавать html только для соединений точки доступа.

Возможно ли это?

, 👍1

Обсуждение

Я думаю, вы хотите, чтобы он был доступен только в локальной сети, а не из Интернета, верно?, @Gerben

Не только местные, нет. Я действительно не знаю точных условий, но я создаю WiFi с помощью своего ESP и хочу, чтобы только люди, получающие доступ к этому эксклюзивному WiFi, могли изменить конфигурацию. Кто-то в Интернете или при доступе к тому же Wi-Fi, к которому подключен мой esp, получает отказ., @Luiz Felipe

Когда флаг прерывания равен 1, он переводит веб-сервер в режим STA_AP, я хочу, чтобы он был доступен только через точку доступа веб-сервера. Я не знаю, проясняет ли это., @Luiz Felipe

Таким образом, он настроен как клиент на Wi-Fi, подключенный к Интернету, и одновременно является точкой доступа. Теперь это имеет смысл. (Я даже не знал, что ESP может это делать.) Я думаю, вы можете фильтровать по IP-адресу., @Gerben

Может быть, это хорошее решение, которое я просто упустил из виду. Я взгляну., @Luiz Felipe

Ага, это совсем просто. Моя точка доступа — 192.168.4.XXX, а IP-адрес моей локальной сети — 192.168.88.XXX, я могу очень легко фильтровать его. Спасибо за свет., @Luiz Felipe

Вы также можете использовать менее используемый частный диапазон 10.xxx, чтобы уменьшить вероятность того, что сеть использует тот же диапазон IP-адресов., @Gerben


1 ответ


Лучший ответ:

0

Это не задокументировано, но вы можете создать WiFiServer или ESP8266WebServer с IP-адресом. Если вы используете IP-адрес точки доступа, сервер будет доступен только на SoftAP. Если вы используете IP-адрес станции, сервер будет доступен только на интерфейсе STA.

#include <ESP8266WiFi.h>

WiFiServer telneServer(23);

void setup() {
  ...
  telneServer = WiFiServer(WiFi.softAPIP(), 23);
//  telneServer = WiFiServer(WiFi.localIP(), 23);
  telneServer.begin();
,

Спасибо! Я уже решил с помощью комментария выше, но ваш ответ показался намного более элегантным, поэтому я попробовал, и он отлично работает! Я просто использовал, чтобы объявить сервер с IP-адресом и настроить softAP таким же образом, используя: «ESP8266WebServer server (local_ip, 80)» и «WiFi.softAPConfig (local_ip, local_ip, IPAddress (255, 255, 255, 0)). )` ., @Luiz Felipe