diff --git a/cores/esp8266/IPAddress.cpp b/cores/esp8266/IPAddress.cpp index 3349c2c5b..ab051bfe3 100644 --- a/cores/esp8266/IPAddress.cpp +++ b/cores/esp8266/IPAddress.cpp @@ -112,4 +112,12 @@ String IPAddress::toString() const return String(szRet); } +bool IPAddress::isValid(const String& arg) { + return IPAddress().fromString(arg); +} + +bool IPAddress::isValid(const char* arg) { + return IPAddress().fromString(arg); +} + const IPAddress INADDR_NONE(0, 0, 0, 0); diff --git a/cores/esp8266/IPAddress.h b/cores/esp8266/IPAddress.h index 1d0d3acaf..0ef1eba72 100644 --- a/cores/esp8266/IPAddress.h +++ b/cores/esp8266/IPAddress.h @@ -79,6 +79,14 @@ class IPAddress: public Printable { virtual size_t printTo(Print& p) const; String toString() const; + /* + check if input string(arg) is a valid IPV4 address or not. + return true on valid. + return false on invalid. + */ + static bool isValid(const String& arg); + static bool isValid(const char* arg); + friend class EthernetClass; friend class UDP; friend class Client; diff --git a/libraries/ESP8266WiFi/src/ESP8266WiFiAP.cpp b/libraries/ESP8266WiFi/src/ESP8266WiFiAP.cpp index 42d951cb8..af663d12e 100644 --- a/libraries/ESP8266WiFi/src/ESP8266WiFiAP.cpp +++ b/libraries/ESP8266WiFi/src/ESP8266WiFiAP.cpp @@ -339,3 +339,33 @@ String ESP8266WiFiAPClass::softAPmacAddress(void) { sprintf(macStr, "%02X:%02X:%02X:%02X:%02X:%02X", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); return String(macStr); } + +/** + * Get the configured(Not-In-Flash) softAP SSID name. + * @return String SSID. + */ +String ESP8266WiFiAPClass::softAPSSID() const { + struct softap_config config; + wifi_softap_get_config(&config); + char* name = reinterpret_cast(config.ssid); + char ssid[sizeof(config.ssid) + 1]; + memcpy(ssid, name, sizeof(config.ssid)); + ssid[sizeof(config.ssid)] = '\0'; + + return String(ssid); +} + +/** + * Get the configured(Not-In-Flash) softAP PSK or PASSWORD. + * @return String psk. + */ +String ESP8266WiFiAPClass::softAPPSK() const { + struct softap_config config; + wifi_softap_get_config(&config); + char* pass = reinterpret_cast(config.password); + char psk[sizeof(config.password) + 1]; + memcpy(psk, pass, sizeof(config.password)); + psk[sizeof(config.password)] = '\0'; + + return String(psk); +} diff --git a/libraries/ESP8266WiFi/src/ESP8266WiFiAP.h b/libraries/ESP8266WiFi/src/ESP8266WiFiAP.h index fae8efd56..78156f102 100644 --- a/libraries/ESP8266WiFi/src/ESP8266WiFiAP.h +++ b/libraries/ESP8266WiFi/src/ESP8266WiFiAP.h @@ -47,6 +47,9 @@ class ESP8266WiFiAPClass { uint8_t* softAPmacAddress(uint8_t* mac); String softAPmacAddress(void); + String softAPSSID() const; + String softAPPSK() const; + protected: };