如何将 Wifi.localIP() 转换为字符串并将其存储到外部变量

How do I convert Wifi.localIP() to String and store it to external variable

本文关键字:串并 存储 字符串 变量 外部 字符 Wifi localIP 转换      更新时间:2023-10-16

我正在尝试将IP地址存储到外部字符串中。我的 IP 地址值在 .cpp 中,但我想将其存储在我的 .h 文件中。我将其存储为字符串,因为我想将其作为链接。(http://"IP 地址"/(

我的 .h 文件

extern std::string ipadd1 = "";

我的.cpp文件

if (connectWifi("", "") == WL_CONNECTED)   {
    DEBUG_WM(F("IP Address:"));
    DEBUG_WM(WiFi.localIP());
ipadd1 = String(WiFi.localIP());
    //connected
    return true;
  }

IPAddress转换为String,然后获取const char *并将其转换为std::string

ipadd1 = WiFi.localIP().toString().c_str();

5分钟的搜索给了我WiFi.localIp((函数描述,从那里我知道它返回了IPAddress对象。以下 forum.arduino.cc 主题:如何操作 IPAddress 变量/转换为字符串,您可以使用以下函数将其转换为字符串:

// author apicquot from https://forum.arduino.cc/index.php?topic=228884.0
String IpAddress2String(const IPAddress& ipAddress)
{
    return String(ipAddress[0]) + String(".") +
           String(ipAddress[1]) + String(".") +
           String(ipAddress[2]) + String(".") +
           String(ipAddress[3]);
}

IPAddress可以像 4 int s 的数组一样处理。

如果我们想用oled(SSD1306)或串行编写Wifi.localIP(),只需编写WiFi.localIP().toString() .喜欢这个:

Serial.print("Connected, IP address: ");
  Serial.print(WiFi.localIP().toString());
  display.clear();
  display.setTextAlignment(TEXT_ALIGN_LEFT);
  display.setFont(ArialMT_Plain_10);
  display.drawString(0, 0, " WiFi is Connected." );
  
  display.drawString(0, 10, " IP address: "  + WiFi.localIP().toString() );

与 Heltec 合作...其他答案对我不起作用。我用过这个:

IPAddress ipa = WiFi.localIP();
uint8_t IP_array[4]= {ipa[0],ipa[1],ipa[2],ipa[3]};
String strIP=
    String(IP_array[0])+"."+
    String(IP_array[1])+"."+
    String(IP_array[2])+"."+
    String(IP_array[3]);