乐鑫技术交流
直播中

建立建利12

9年用户 1453经验值
擅长:可编程逻辑 嵌入式技术
私信 关注
[问答]

esp32连接wifi有办法获取到路由器的mac地址吗?

  您好,esp32 连接wifi 有办法获取到 路由器的mac地址吗

回帖(1)

叹久

2024-6-25 17:27:11
您好!ESP32 是一款功能强大的微控制器,它可以通过 Wi-Fi 连接到路由器。关于您的问题,ESP32 在连接到 Wi-Fi 网络时,确实可以获取到路由器的 MAC 地址。以下是获取路由器 MAC 地址的步骤:

1. 初始化 Wi-Fi 连接:首先,您需要确保 ESP32 已经成功连接到 Wi-Fi 网络。这通常涉及到设置 Wi-Fi SSID 和密码。

2. 获取网络信息:ESP32 提供了一个名为 `esp_wifi_sta_get_ap_info()` 的函数,该函数可以获取当前连接的 Wi-Fi 网络的详细信息。这个函数需要一个指向 `wifi_ap_record_t` 结构体的指针作为参数。

3. 访问 MAC 地址:在 `wifi_ap_record_t` 结构体中,有一个名为 `bssid` 的字段,它是一个 6 个字节的数组,表示路由器的 MAC 地址。您可以将这个数组转换为字符串格式,以便更容易地查看和使用。

以下是一个简单的示例代码,演示如何获取并打印路由器的 MAC 地址:

```c
#include

void setup() {
  Serial.begin(115200);
  WiFi.begin("您的SSID", "您的密码");

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("Connected to WiFi");

  wifi_ap_record_t ap_info;
  esp_wifi_sta_get_ap_info(&ap_info);

  Serial.print("Router MAC Address: ");
  for (int i = 0; i < 6; i++) {
    Serial.print(ap_info.bssid[i], HEX);
    if (i < 5) {
      Serial.print(":");
    }
  }
  Serial.println();
}

void loop() {
  // 这里可以添加其他代码
}
```

请注意,您需要将 "您的SSID" 和 "您的密码" 替换为您的 Wi-Fi 网络的 SSID 和密码。这段代码将连接到 Wi-Fi 网络,然后获取并打印路由器的 MAC 地址。
举报

更多回帖

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