From c5ef3eb65b5fb3306f2157fe35f7e7b47e29e69a Mon Sep 17 00:00:00 2001 From: Xiang Hou Date: Sat, 30 Jul 2022 22:20:55 +0800 Subject: [PATCH 1/4] Update WiFiSTA.h --- libraries/WiFi/src/WiFiSTA.h | 1 + 1 file changed, 1 insertion(+) diff --git a/libraries/WiFi/src/WiFiSTA.h b/libraries/WiFi/src/WiFiSTA.h index b8bb855c198..110e8fb4397 100644 --- a/libraries/WiFi/src/WiFiSTA.h +++ b/libraries/WiFi/src/WiFiSTA.h @@ -85,6 +85,7 @@ class WiFiSTAClass bool enableIpV6(); IPv6Address localIPv6(); + IPv6Address globalIPv6(); // STA WiFi info static wl_status_t status(); From 7efe3cec5a6e24c5978db37ce2d044bc171e88c0 Mon Sep 17 00:00:00 2001 From: Xiang Hou Date: Sat, 30 Jul 2022 22:22:44 +0800 Subject: [PATCH 2/4] Update WiFiSTA.cpp --- libraries/WiFi/src/WiFiSTA.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/libraries/WiFi/src/WiFiSTA.cpp b/libraries/WiFi/src/WiFiSTA.cpp index 7bcafea1d3e..3cc5d5a456f 100644 --- a/libraries/WiFi/src/WiFiSTA.cpp +++ b/libraries/WiFi/src/WiFiSTA.cpp @@ -733,7 +733,7 @@ bool WiFiSTAClass::enableIpV6() } /** - * Get the station interface IPv6 address. +* Get the station interface local link IPv6 address. * @return IPv6Address */ IPv6Address WiFiSTAClass::localIPv6() @@ -748,6 +748,22 @@ IPv6Address WiFiSTAClass::localIPv6() return IPv6Address(addr.addr); } +/** +* Get the station interface local link IPv6 address. + * @return IPv6Address + */ +IPv6Address WiFiSTAClass::globalIPv6() +{ + esp_ip6_addr_t addr; + if(WiFiGenericClass::getMode() == WIFI_MODE_NULL){ + return IPv6Address(); + } + if(esp_netif_get_ip6_global(get_esp_interface_netif(ESP_IF_WIFI_STA), &addr)) { + return IPv6Address(); + } + return IPv6Address(addr.addr); +} + bool WiFiSTAClass::_smartConfigStarted = false; bool WiFiSTAClass::_smartConfigDone = false; From 62a8c893514ed9721b9294a155aba3bd693a6afd Mon Sep 17 00:00:00 2001 From: Xiang Hou Date: Sat, 30 Jul 2022 22:25:28 +0800 Subject: [PATCH 3/4] Update WiFiIPv6.ino --- libraries/WiFi/examples/WiFiIPv6/WiFiIPv6.ino | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libraries/WiFi/examples/WiFiIPv6/WiFiIPv6.ino b/libraries/WiFi/examples/WiFiIPv6/WiFiIPv6.ino index 6be60fc2581..bbb1c504516 100644 --- a/libraries/WiFi/examples/WiFiIPv6/WiFiIPv6.ino +++ b/libraries/WiFi/examples/WiFiIPv6/WiFiIPv6.ino @@ -83,8 +83,10 @@ void WiFiEvent(WiFiEvent_t event){ WiFi.enableIpV6(); break; case ARDUINO_EVENT_WIFI_STA_GOT_IP6: - Serial.print("STA IPv6: "); + Serial.print("STA Local IPv6: "); Serial.println(WiFi.localIPv6()); + Serial.print("STA Global IPv6: "); + Serial.println(WiFi.globalIPv6()); break; case ARDUINO_EVENT_WIFI_AP_GOT_IP6: Serial.print("AP IPv6: "); From f0461bee0d0a89db115103d67e04fedbad267c18 Mon Sep 17 00:00:00 2001 From: Xiang Hou Date: Sat, 30 Jul 2022 22:27:38 +0800 Subject: [PATCH 4/4] Update WiFiSTA.cpp --- libraries/WiFi/src/WiFiSTA.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/WiFi/src/WiFiSTA.cpp b/libraries/WiFi/src/WiFiSTA.cpp index 3cc5d5a456f..2dfc8afe794 100644 --- a/libraries/WiFi/src/WiFiSTA.cpp +++ b/libraries/WiFi/src/WiFiSTA.cpp @@ -749,7 +749,7 @@ IPv6Address WiFiSTAClass::localIPv6() } /** -* Get the station interface local link IPv6 address. +* Get the station interface global IPv6 address. * @return IPv6Address */ IPv6Address WiFiSTAClass::globalIPv6()