IPAddress
Класс IPAddress даёт доступ к локальному IP, маске подсети и адресу шлюза Wi-Fi модуля — удобно для отладки сети после подключения.
Полная статья
Класс IP-адреса
IPAddress Класс предоставляет три метода для работы с сетевыми параметрами Wi-Fi модуля: локальный IP-адрес, маска подсети и адрес шлюза. Эти данные становятся доступны после успешного подключения к сети — например, после того как модуль получил адрес по DHCP или был настроен со статическим IP.
Все три метода не принимают параметров и возвращают объект типа IPAddress, который можно напрямую передавать в Serial.println() для вывода в удобочитаемом формате.
---
IPAddress.localIP()
Описание
Возвращает IP-адрес, присвоенный Wi-Fi модулю в текущей сети. Если соединение ещё не установлено, результат будет 0.0.0.0 — это удобный способ проверить, действительно ли устройство подключилось к сети.
Синтаксис
IPAddress.localIP();
Параметры
нет
Возвращает
Объект IPAddress с локальным IP-адресом модуля.
Пример
#include <WiFi.h>
char ssid[] = "yourNetwork"; //SSID вашей сети
int status = WL_IDLE_STATUS; // статус Wi-Fi модуля
IPAddress ip; // IP-адрес вашего шилда
void setup()
{
// инициализация serial:
Serial.begin(9600);
WiFi.begin(ssid);
if ( status != WL_CONNECTED) {
Serial.println("Couldn't get a wifi connection");
while(true);
}
// если подключены, вывести информацию о соединении:
else {
//вывести локальный IP-адрес
ip = WiFi.localIP();
Serial.println(ip);
}
}
void loop () {}
---
IPAddress.subnetMask()
Описание
Возвращает маску подсети сети, к которой подключён Wi-Fi модуль. Для большинства домашних сетей это будет 255.255.255.0. Маска подсети нужна, если вы вручную вычисляете диапазон адресов сети или настраиваете статический IP.
Синтаксис
IPAddress.subnet();
Параметры
нет
Возвращает
Объект IPAddress с маской подсети.
Пример
#include <WiFi.h>
int status = WL_IDLE_STATUS; // статус Wi-Fi модуля
//SSID вашей сети
char ssid[] = "yourNetwork";
//пароль вашей WPA-сети
char pass[] = "secretPassword";
IPAddress ip;
IPAddress subnet;
IPAddress gateway;
void setup()
{
WiFi.begin(ssid, pass);
if ( status != WL_CONNECTED) {
Serial.println("Couldn't get a wifi connection");
while(true);
}
// если подключены, вывести информацию о соединении:
else {
// вывести маску подсети:
subnet = WiFi.subnetMask();
Serial.print("NETMASK: ");
Serial.println(subnet);
}
}
void loop () {
}
---
IPAddress.gatewayIP()
Описание
Возвращает IP-адрес шлюза (роутера) сети. Это адрес устройства, через которое Wi-Fi модуль выходит в интернет или в другие подсети. Полезно при отладке сетевых проблем: если шлюз не определился, значит подключение к сети не завершилось успешно.
Синтаксис
IPAddress.gatewayIP();
Параметры
нет
Возвращает
Объект IPAddress с адресом шлюза сети.
Пример
#include <SPI.h>
#include <WiFi.h>
int status = WL_IDLE_STATUS; // статус Wi-Fi модуля
//SSID вашей сети
char ssid[] = "yourNetwork";
//пароль вашей WPA-сети
char pass[] = "secretPassword";
IPAddress gateway;
void setup()
{
Serial.begin(9600);
WiFi.begin(ssid, pass);
if ( status != WL_CONNECTED) {
Serial.println("Couldn't get a wifi connection");
while(true);
}
// если подключены, вывести информацию о соединении:
else {
// вывести адрес шлюза:
gateway = WiFi.gatewayIP();
Serial.print("GATEWAY: ");
Serial.println(gateway);
}
}
void loop () {}
---
Где применяется
- Отладка подключения — вывести в
Serial Monitorвсе три параметра сразу послеWiFi.begin(), чтобы убедиться, что DHCP отработал корректно. - Веб-сервер на Arduino — показать пользователю адрес, по которому нужно открыть страницу в браузере.
- Статическая настройка сети — сравнить полученные значения с ожидаемыми, если сеть настроена вручную.
- Мониторинг состояния — периодически проверять
IPAddress.localIP()и переподключаться, если адрес сбросился в0.0.0.0.
Практические замечания
- Вызывайте эти методы только после успешного подключения к Wi-Fi. Если вызвать их раньше, вернётся
0.0.0.0. - Объект
IPAddressподдерживает прямую передачу вSerial.println()— он автоматически форматируется в строку вида192.168.1.42. - Если
IPAddress.localIP()возвращает0.0.0.0, проверьте правильность SSID и пароля, а также убедитесь, что DHCP-сервер роутера включён. - При использовании статического IP методы всё равно корректно возвращают заданные значения — они читают текущую конфигурацию модуля, а не обращаются к роутеру.