Битлента
Сетевые команды и утилиты5 мин чтения·

ipconfig getifaddr en0: как узнать IP-адрес Mac из терминала

Как узнать IP-адрес Mac командой ipconfig getifaddr, найти имя интерфейса en0 или en1, прочитать данные DHCP и определить интерфейс по умолчанию.

Кратко

На macOS локальный IPv4-адрес выводит команда ipconfig getifaddr и имя интерфейса, чаще всего en0. Если там пусто, найдите нужный интерфейс через networksetup -listallhardwareports.

Одна команда для локального адреса

Самый короткий ответ на вопрос «какой у меня IP на Mac» даёт ipconfig getifaddr en0. Команда печатает один IPv4-адрес интерфейса без лишних слов, поэтому её удобно использовать в скриптах и в подстановках вроде $(ipconfig getifaddr en0).

Не путайте её с одноимённой командой Windows. В macOS у ipconfig другое назначение: это небольшая утилита для работы с настройками DHCP и адресами интерфейсов, и ключи у неё свои. Классический ifconfig тоже работает, но его вывод длиннее, а нужный адрес приходится искать глазами.

Если команда ничего не вывела, причин три. Либо у интерфейса нет IPv4-адреса, либо вы указали не тот интерфейс, либо сеть отключена. Пустой вывод означает отсутствие адреса у этого интерфейса. Код возврата можно посмотреть командой echo $?, его удобно проверять в скриптах.

Как найти правильное имя интерфейса

Имя en0 не закреплено за Wi-Fi. На многих ноутбуках так называется Wi-Fi, но на Mac с кабельным портом, на устройствах с адаптерами Thunderbolt или USB порядок может отличаться. Чтобы не гадать, выведите соответствие портов и устройств: networksetup -listallhardwareports.

В выводе для каждого порта указаны строки Hardware Port, Device и Ethernet Address. Найдите нужный порт, например Wi-Fi, и подставьте значение Device в команду. Так вы получите адрес именно того способа подключения, который вас интересует.

Ещё один путь — спросить систему, через какой интерфейс уходит весь трафик: route -n get default. Среди строк будет поле interface, это и есть интерфейс по умолчанию. Его адрес и называют обычно «IP этого компьютера в сети». Если подключены и Wi-Fi, и кабель, у каждого интерфейса будет свой адрес, и это нормально.

Что ещё умеет ipconfig в macOS

Помимо адреса, утилита показывает сведения, полученные от DHCP-сервера. Это помогает понять, откуда взялись шлюз и DNS, не заходя в панель роутера.

КомандаЧто выводит
ipconfig getifaddr en0IPv4-адрес интерфейса
ipconfig getpacket en0Содержимое последнего ответа DHCP: адрес, маска, шлюз, DNS, срок аренды
ipconfig getoption en0 subnet_maskОдно значение из ответа DHCP, здесь маска сети
ipconfig getoption en0 routerАдрес шлюза, выданный сервером
ipconfig getoption en0 domain_name_serverАдреса DNS, выданные сервером

Названия опций соответствуют полям DHCP. Если у интерфейса адрес задан вручную, а не получен автоматически, ответа DHCP у системы нет, и getpacket не покажет полезных данных. Это тоже признак: вы видите, настроен адрес автоматически или статически.

Срок аренды в выводе getpacket показывает, как долго сервер разрешил пользоваться адресом. Конкретные значения задаются на стороне роутера и у разных сетей отличаются.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Адрес, который видите вы, и адрес, который видят снаружи

Команда показывает локальный адрес внутри вашей сети. Обычно это значение вида 192.168.x.x, 10.x.x.x или 172.16–31.x.x. Он выдан роутером и за пределами дома или офиса не используется.

Внешний адрес, под которым ваша сеть выходит в интернет, команда не покажет. Его знает роутер, а также сервисы, которые отвечают на запрос вашим адресом. На странице статуса роутера внешний адрес обычно отображается в разделе о подключении к интернету, название раздела зависит от модели.

Бывает, что адрес на роутере начинается с 100.64 или в нём стоит частный диапазон: тогда провайдер выдаёт один внешний адрес нескольким абонентам, и узнавать его через роутер бессмысленно. Это особенность подключения у конкретного провайдера, уточнить подробности можно в его поддержке.

Если же вы получили адрес вида 169.254.x.x, система не получила ответ от DHCP и присвоила себе адрес сама. Подробный разбор этой ситуации есть на странице про самоназначенный IP в macOS.

Короткий порядок проверки сети с Mac

Когда нужно быстро понять, где обрыв, используйте цепочку из нескольких команд в терминале.

  1. networksetup -listallhardwareports — узнайте, какое устройство соответствует Wi-Fi или кабелю.
  2. ipconfig getifaddr en0 — есть ли адрес у выбранного интерфейса.
  3. ipconfig getoption en0 router — выдал ли сервер шлюз.
  4. ping шлюза — отвечает ли роутер.
  5. ping внешнего адреса по IP и затем по имени — различите проблему маршрута и проблему DNS.

Если на втором шаге адреса нет, дальше идти бессмысленно: сначала нужно решить вопрос с получением адреса, например переподключиться к сети или перезапустить роутер. Если адрес есть, а ping шлюза не проходит, смотрите уровень Wi-Fi и кабеля. Когда ping по IP проходит, а по имени нет, причина в DNS.

Использование в скриптах и псевдонимах

Короткий вывод команды удобен для автоматизации. Подстановка $(ipconfig getifaddr en0) вставляет адрес прямо в другую команду, например при запуске локального веб-сервера для проверки сайта с телефона в той же сети. Достаточно подставить адрес и порт, и страница откроется на другом устройстве по этому адресу.

Чтобы не печатать команду каждый раз, создайте псевдоним в файле настроек оболочки, например myip. Тогда вывод адреса будет занимать одно слово.

Если скрипт должен работать и по Wi-Fi, и по кабелю, проверяйте несколько интерфейсов по очереди и берите первый непустой результат. Не опирайтесь на то, что нужный интерфейс всегда называется одинаково: на другом компьютере порядок устройств может отличаться.

Помните и о том, что локальный адрес может измениться после переподключения, поскольку роутер выдаёт его на ограниченный срок. Для постоянного адреса в сети лучше настроить резервирование на роутере, а не полагаться на значение, полученное вчера.

Если ваша цель — подключиться к Mac с другого устройства в той же сети, например по SSH или к локальному веб-серверу, вам понадобится именно этот адрес. Сообщите его второму устройству и убедитесь, что оба находятся в одной сети: в гостевой сети роутера устройства часто не видят друг друга, и тогда адрес не поможет.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
macosipconfigip-адресdhcp

Часто задаваемые вопросы

Читайте также