📜  WiFi.localIP() 到字符串 (1)

📅  最后修改于: 2023-12-03 14:48:27.644000             🧑  作者: Mango

WiFi.localIP() 到字符串

简介

WiFi.localIP() 函数用于获取 ESP8266 或 ESP32 的本地 IP 地址,返回的是一个 IPAddress 类型的对象。在实际应用中,我们通常需要将 IP 地址转换为字符串类型,方便进行数据传输或显示等操作。本文将介绍将 WiFi.localIP() 返回的 IP 地址转换为字符串类型的方法。

实现方法

IPAddress 对象转换为字符串,可以通过以下两种方法实现:

方法一:使用 toString() 函数

IPAddress 类型提供了 toString() 函数,可以将 IP 地址转换为字符串类型。使用方法如下:

IPAddress ip = WiFi.localIP();
String ipStr = ip.toString();
Serial.println(ipStr);

其中,ip.toString() 返回一个 String 类型的对象,表示 IP 地址转换后的字符串。

方法二:使用 sprintf() 函数

另一种常见的方法是使用 sprintf() 函数将 IP 地址转换为字符串类型。此方法的实现需要引入头文件 stdio.h,使用时可以按照以下示例进行:

#include <stdio.h>

IPAddress ip = WiFi.localIP();
char ipStr[16];
sprintf(ipStr, "%d.%d.%d.%d", ip[0], ip[1], ip[2], ip[3]);
Serial.println(ipStr);

在该示例中,我们首先定义了一个长度为 16 的字符数组 ipStr。然后,使用 sprintf() 函数将 IP 地址转换为字符串类型,其中 %d.%d.%d.%d 表示 IP 地址的格式,分别对应四个字节的 IP 地址。最后,我们将转换后的字符串通过串口输出。

注意事项

需要注意的是,以上两种方法都假设 IP 地址为 IPv4 类型,如果需要支持 IPv6 地址,请参考相应资料进行转换。

参考资料
  1. IPAddress 类型官方文档:https://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/ipaddress-class.html
  2. sprintf() 函数官方文档:https://www.cplusplus.com/reference/cstdio/sprintf/