Главная chevron_right Функции chevron_right Wi-Fi chevron_right IPAddress

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 методы всё равно корректно возвращают заданные значения — они читают текущую конфигурацию модуля, а не обращаются к роутеру.