我正在尝试将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;
}
答案 0 :(得分:1)
5分钟的搜索给了我the WiFi.localIp() function description,从那里我知道它返回了IPAddress
对象。在forum.arduino.cc Topic: How to manipulate IPAddress variables / convert to string之后,您可以使用以下函数将其转换为字符串:
// 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的数组来处理。
答案 1 :(得分:1)
将IPAddress
转换为String
,然后获取const char *
并将其转换为std::string
。
ipadd1 = WiFi.localIP().toString().c_str();
答案 2 :(得分:1)
如果我们想用Wifi.localIP()
写oled(SSD1306)
或串行写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() );