乐鑫技术交流
直播中

王斌

7年用户 1323经验值
私信 关注
[问答]

ESP8266如何获取连接的AP的IP地址?

我们使用 ESP8266 作为站,AT CWMODE=1,
连接到AP并获取地址后,没有AP的IP地址信息。
在 CIFSR
+CIFSR:STAIP,"192.168.1.5"
+CIFSR:STAMAC,"18:fe:34:a6:01:a9"
OK

If there is no AT commands to know AP's IP address, please suggest which API in the SDK we can use. In "2c-esp8266_non_os_sdk_api_reference_cn.pdf", there seems no API to provide AP's IP address.

固件版本:
在GMR
AT版本:1.3.0.0(Jul 14, 2016 18:54:01)
SDK版本:2.0.0(656edbf)
编译时间:2016-7-22 12:02:54

回帖(1)

吴湛

2024-7-18 18:04:54
要获取连接的AP的IP地址,您可以尝试以下方法:

1. 使用AT命令:在ESP8266中,您可以使用AT命令来获取AP的IP地址。首先,确保您的ESP8266已经连接到AP。然后,发送以下AT命令:

```
AT+CIFSR
```

这个命令将返回ESP8266的IP地址和AP的IP地址。输出示例如下:

```
+CIFSR:STAIP,"192.168.1.5"
+CIFSR:AP
+CIFSR:APIP,"192.168.1.1"
OK
```

在这个示例中,AP的IP地址是192.168.1.1。

2. 使用ESP8266的RTOS SDK:如果您使用的是ESP8266的RTOS SDK,您可以使用以下API来获取AP的IP地址:

```c
#include "esp_common.h"

void get_ap_ip_address()
{
    wifi_station_info_t station_info;
    wifi_station_get_info(&station_info);
    struct ip_info sta_ip;

    wifi_get_ip_info(SOFTAP_IF, &sta_ip);

    printf("AP IP Address: %d.%d.%d.%dn",
        sta_ip.ip.addr[0], sta_ip.ip.addr[1], sta_ip.ip.addr[2], sta_ip.ip.addr[3]);
}
```

在这个示例中,我们首先获取了ESP8266的连接信息,然后使用`wifi_get_ip_info`函数获取AP的IP地址。

3. 使用ESP8266的非RTOS SDK:如果您使用的是ESP8266的非RTOS SDK,您可以使用以下API来获取AP的IP地址:

```c
#include "user_interface.h"

void get_ap_ip_address()
{
    struct ip_info sta_ip;

    wifi_station_get_ip_info(&sta_ip);

    printf("AP IP Address: %d.%d.%d.%dn",
        sta_ip.ip.addr[0], sta_ip.ip.addr[1], sta_ip.ip.addr[2], sta_ip.ip.addr[3]);
}
```

在这个示例中,我们使用`wifi_station_get_ip_info`函数获取AP的IP地址。

请注意,这些示例代码可能需要根据您的具体开发环境进行调整。希望这些方法能帮助您获取连接的AP的IP地址。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分