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

Get-NetNeighbor: как посмотреть соседние устройства в локальной сети через PowerShell

Get-NetNeighbor выводит таблицу соседних устройств для IPv4 и IPv6: адрес, MAC и состояние записи. Как читать вывод и что значат Reachable и Stale.

Кратко

Get-NetNeighbor показывает кэш соседей: IP-адреса устройств, их MAC-адреса и состояние записи (Reachable, Stale, Permanent и другие). Это аналог arp -a, который заодно охватывает IPv6 и умеет фильтровать вывод.

Что такое кэш соседей

Чтобы отправить пакет устройству в той же сети, компьютеру нужен его физический адрес. Для IPv4 соответствие между IP и MAC хранится в таблице ARP, а для IPv6 используется аналогичный механизм обнаружения соседей. Windows держит обе таблицы в одном кэше, и Get-NetNeighbor выводит его целиком.

Команду используют, чтобы увидеть, с какими устройствами компьютер разговаривал недавно, и чтобы проверить, нет ли странностей: два IP-адреса с одним MAC, пропавший шлюз, дубликаты. Кэш не равен списку всех устройств сети: в него попадают лишь те, с кем был обмен.

Классический вариант для cmd описан на странице про таблицу ARP. Здесь показан PowerShell-вариант с фильтрами.

Столбцы вывода

Основные поля выглядят так.

ПолеЗначение
ifIndexНомер интерфейса, к которому относится запись
IPAddressАдрес соседа
LinkLayerAddressMAC-адрес соседа
StateСостояние записи
InterfaceAliasИмя подключения

В выводе будут записи и для IPv6, и для служебных адресов группового вещания: адреса, начинающиеся на 224 и 239, а также ff02 и подобные. Они обычно помечены как Permanent и не относятся к реальным устройствам. Чтобы отсеять лишнее, укажите параметр -AddressFamily IPv4.

Что означают состояния

Состояние записи показывает, насколько можно ей доверять.

  • Reachable: недавно получено подтверждение, что сосед отвечает;
  • Stale: запись давно не проверялась, адрес может быть уже недоступен, но он пока хранится;
  • Delay и Probe: система проверяет, жив ли сосед;
  • Incomplete: запрос отправлен, ответа ещё нет;
  • Unreachable: ответа не было, сосед считается недоступным;
  • Permanent: запись постоянная, обычно служебная или добавленная вручную.

Статус Stale не признак проблемы. Это нормальное состояние для устройств, с которыми давно не общались. А вот много записей Incomplete или Unreachable для шлюза означает, что до роутера не достучаться.

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

Практические запросы

Вот несколько команд, которые решают типовые задачи:

  • Get-NetNeighbor -AddressFamily IPv4 оставляет только IPv4-соседей;
  • Get-NetNeighbor -State Reachable показывает только отвечающие устройства;
  • Get-NetNeighbor -IPAddress 192.168.1.1 находит запись конкретного адреса, подставьте адрес своего роутера;
  • Get-NetNeighbor | Where-Object { $_.State -ne "Permanent" } отсеивает служебные записи.

Чтобы заполнить кэш перед просмотром, сначала обратитесь к устройствам: например, пингуйте нужный адрес или всю подсеть. Пока обмена не было, записи в таблице просто нет.

Как искать ошибки в сети и добавление и удаление записей

Одинаковый MAC-адрес у нескольких разных IP может быть нормален: маршрутизатор отвечает за всю подсеть и часто занимает несколько адресов. Но если два соседа из локальной сети делят один MAC без видимой причины, стоит разобраться, какое устройство отвечает.

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

Если вас интересует, кто подключён к вашей сети, помните: кэш показывает не всех. Полный список надёжнее смотреть в интерфейсе роутера.

Записи можно добавлять и удалять вручную командами New-NetNeighbor и Remove-NetNeighbor, но для этого нужны права администратора и понимание последствий. Статическая запись закрепляет MAC за адресом, пока её не удалят, и если устройство потом заменят, связь пропадёт.

Для обычной диагностики достаточно просмотра. Если кэш содержит устаревшие данные, часто хватает дождаться их истечения или очистить таблицу командой Remove-NetNeighbor с подходящими параметрами либо командой netsh interface ip delete arpcache. Выполняйте очистку осознанно: связь с соседями ненадолго замедлится, пока записи не восстановятся.

Пример: проверить доступность шлюза и ограничения и границы применения

Чтобы убедиться, что компьютер видит роутер на канальном уровне, найдите адрес шлюза в выводе Get-NetIPConfiguration, а затем выполните Get-NetNeighbor -IPAddress с этим адресом. Если запись есть и состояние Reachable или Stale с корректным MAC, связь до роутера в порядке. Если записи нет или состояние Incomplete, компьютер не получает ответов от роутера.

Следующий шаг в такой ситуации — проверка кабеля, питания роутера и Wi-Fi. Если соединение раньше работало, а сейчас пропало, перезапуск роутера часто возвращает всё на место. В остальных случаях обратитесь к провайдеру.

Сверьте MAC роутера с наклейкой на его корпусе: так вы убедитесь, что отвечает именно ваше устройство, а не чужое.

Кэш соседей описывает только текущий сегмент сети. Устройства за роутером, в других подсетях и в интернете здесь не появятся: компьютер видит лишь MAC роутера, а не MAC удалённого сервера. Поэтому по этой таблице нельзя судить о доступности внешних адресов.

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

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

При диагностике записывайте адрес, MAC и состояние шлюза до и после проблемы. Сравнение двух снимков показывает, изменилось ли что-то на канальном уровне. Если MAC шлюза изменился без вашего ведома, проверьте, не появился ли в сети второй роутер или не включена ли на другом устройстве раздача адресов. Конфликты такого рода часто возникают после подключения чужого или старого роутера к домашней сети.

Если вы работаете в сети с несколькими подсетями или виртуальными интерфейсами, не удивляйтесь записям для неизвестных адресов: гипервизоры и контейнерные среды создают собственные сети. Ориентируйтесь на поле InterfaceAlias, чтобы отделить реальную домашнюю сеть от внутренних сетей, созданных программами на этом же компьютере.

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

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

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