What is the IP of NodeMCU if it is configured as access point?

Яка IP у NodeMCU, якщо контролер налаштований як точка доступу?

Якщо контролер NodeMCU працює у режимі wifi.SOFTAP, то для зовнішніх пристроїв у їх WiFi мережі (тобто мережі іншої точки доступу), він взагалі є недосяжним, адже у нього окрема безпровідна мережа і питання IP-адреси перестає бути актуальним, адже щоб побачити контролер на рівні IP, до нього спочатку потрібно підключитися на рівні WiFi.

У випадку ж, коли контролер працює у режимі і станції і точки доступу: wifi.STATIONAP – тоді у контролера дійсно є два інтерфейси з двома різними MAC-адресами і двома різними IP-адресам. Які на рівні IP є ізольованими одна від одної.

У цій ситуації, контролер отримує IP-адресу станції від точки доступу до якої приєднався, а адресу своєї власної точки доступу налаштовує сам і ця адреса завжди однакова: 192.168.4.1

Для того, щоб з рівня коду Lua перевірити поточну адресу на інтерфейсі станції, потрібно використовувати метод wifi.sta.getip():

Syntax

Parameters

none

Returns

IP address, netmask, gateway address as string, for example “192.168.0.111”. Returns nil if IP = “0.0.0.0”.

Example

Для перевірки адреси на інтерфейсі точки доступу, потрібно використовувати метод wifi.ap.getip():

Syntax

Parameters

none

Returns

IP address, netmask, gateway address as string, for example “192.168.0.111”, returns nil if IP address = “0.0.0.0”.

Example

Див. документацію:

wifi.sta.getip()

wifi.ap.getip()


If the NodeMCU controller works in wifi.SOFTAP mode, then for external devices in their WiFi network (ie networks of another access point), it is generally unreachable, because it has a separate wireless network and the issue of knowing the IP address is no longer relevant, because to see the controller at the IP level, you must first connect to it at the WiFi level.

In the case when the controller works at the same time as a station and an access point: wifi.STATIONAP – then the controller really has two interfaces with two different MAC addresses and two different IP addresses. Which at the IP level are isolated from each other. In this situation, the controller obtains the IP address of the station from the access point to which it has joined, and configures the address of its own access point itself and this address is always the same: 192.168.4.1

To check the current IP address on the station interface from the Lua code level, you need to use the wifi.sta.getip () method, and to check the address on the access point interface, use the wifi.ap.getip () method.

See documentation:

wifi.sta.getip()

wifi.ap.getip()