IP-адрес подключенного сетевого устройства нужен пользователю в той ситуации, когда на него отправляется определенная команда, например, документ для печати на принтер. Помимо этого примеров существует достаточно много, мы не будем перечислять все их. Иногда юзер сталкивается с ситуацией, когда сетевой адрес оборудования для него неизвестен, а на руках имеется лишь физический, то есть MAC-адрес. Тогда нахождение IP осуществляется достаточно просто с помощью стандартных средств операционной системы.

Определяем IP устройства по MAC-адресу

Для выполнения сегодняшней задачи мы воспользуемся только «Командной строкой» Windows и в отдельном случае встроенным приложением «Блокнот». Вам не нужно знать никаких протоколов, параметров или команд, сегодня мы ознакомим вас со всеми ними. От юзера требуется только наличие правильного MAC-адреса подключенного аппарата для произведения дальнейшего поиска.

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

Способ 1: Ручной ввод команд

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

    Откройте приложение «Выполнить», зажав комбинацию клавиш Win + R. Впишите в поле ввода cmd, а затем щелкните на кнопку «ОК».

Считывание IP-адресов будет происходить через кэш, поэтому его сначала нужно наполнить. За это отвечает команда for /L %a in (1,1,254) do @start /b ping 192.168.1.%a -n 2 > nul . Обратите внимание, что сработает она только тогда, когда сетевые настройки являются стандартными, то есть 192.168.1.1 / 255.255.255.0. В противном случае изменению подлежит часть (1,1,254). Вместо 1 и 1 вводятся начальные и конечные значения измененного IP сети, а вместо 254 — установленная маска подсети. Пропечатайте команду, а затем нажмите на клавишу Enter.

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

Теперь следует просмотреть сохраненные в кэше записи с помощью команды arp и аргумента -a. Протокол ARP (Address resolution protocol) показывает соответствие MAC-адресов к IP, выводя все найденные устройства в консоль. Учтите, что после наполнения некоторые записи хранятся не более 15 секунд, поэтому сразу после наполнения кэша запустите сканирование, введя arp -a .

Если список получился слишком длинный или вы хотите целенаправленно найти только одно совпадение, вместо arp -a после наполнения кэша следует ввести команду arp -a | find "01-01-01-01-01-01" , где 01-01-01-01-01-01 — имеющийся MAC-адрес.

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

Вот такое простое руководство поможет вам определить IP-адрес сетевого устройства с помощью имеющегося MAC. Рассмотренный способ требует от пользователя ручного ввода каждой команды, что не всегда удобно. Поэтому тем, кому нужно часто производить подобные процедуры, мы советуем ознакомиться со следующим методом.

Способ 2: Создание и запуск скрипта

Для упрощения процесса нахождения мы предлагаем воспользоваться специальным скриптом — набором команд, автоматически запускающихся в консоли. Вам потребуется только создать вручную этот скрипт, запустить его и ввести MAC-адрес.

    На рабочем столе щелкните правой кнопкой мыши и создайте новый текстовый документ.

Откройте его и вставьте туда следующие строки:

@echo off
if "%1" == "" echo no MAC address & exit /b 1
for /L %%a in (1,1,254) do @start /b ping 192.168.1.%%a -n 2 > nul
ping 127.0.0.1 -n 3 > nul
arp -a | find /i "%1"

Мы не будем объяснять значение всех строк, поскольку вы можете ознакомиться с ними в первом способе. Ничего нового здесь не добавлено, только оптимизирован процесс и настроен дальнейший ввод физического адреса. После ввода скрипта через меню «Файл» выберите пункт «Сохранить как».

Задайте файлу произвольное название, например Find_mac, и после названия допишите .cmd , выбрав в поле ниже тип файла «Все файлы». В итоге должно получиться Find_mac.cmd . Сохраните скрипт на рабочем столе.

Сохраненный файл на десктопе будет выглядеть так:

Запустите «Командную строку» и перетащите туда скрипт.

Его адрес добавится в строку, а значит объект успешно загружен.

Нажмите Пробел и впишите MAC-адрес в таком формате, как указано на скриншоте ниже, а затем нажмите на клавишу Enter.

Пройдет несколько секунд и вы увидите результат.

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

Если поиск двумя приведенными вариантами не принес никакого результата, внимательно перепроверьте вводимый MAC, а при использовании первого способа не забывайте, что некоторые записи в кэше хранятся не более 15 секунд.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Эта статья рассказывает, как узнать, какой IP адрес имеет сетевое устройство с известным MAC адресом.

Этот вопрос чаще возникает для сетевых устройств, таких как сетевые принтеры или сетевые телекамеры. Например, мы подключили сетевой принтер или сетевую телекамеру к сети с DHCP и хотим узнать IP адрес этого устройства, но доступа к статистике DHCP сервера нет. Или на устройстве задан статический IP адрес, но мы не помним, какой именно. При этом мы знаем MAC адрес (написан на корпусе). Этот вопрос бывает актуален и для компьютеров, особенно к которым нет физического доступа.

Консольные команды определения IP адреса представлены на картинке, а далее описано, почему команды должны быть именно такими и как они работают, также приведён пример bat файла:
Способ работает на любом Windows компьтере в сети и не требует административных полномочий. Используется информация ARP кэша, производится чтение списка и поиск нужной записи.

Просмотр ARP кэша

Командная строка просмотра ARP кэша с поиском записи по определённому MAC адресу:

Но, выполнив эту команду, мы можем не увидеть наше устройство.

Это происходит потому, что ARP кэш в Windows хранит записи от 15 до 45 секунд, начиная с Windows Vista: Address Resolution Protocol (ARP) caching behavior in Windows Vista TCP/IP implementations.

Наполнение ARP кэша

Поэтому перед чтением кэша необходимо заполнить его полным списком узлов сети. Это можно сделать, запустив ping на все узлы сети, например, если у нас сеть 192.168.1.1 / 255.255.255.0, то:

Важно, чтобы запуск ping’ов происходил как do @start /b ping, тогда

  • все ping’и запускаются почти одновременно, и время выполнения цикла составит всего несколько секунд. Если написать просто do ping, т.е. без start, то цикл будет выполняться более 10 минут.
  • значок @ перед start предотвращает вывод 254 команд ping

После завершения ping’ов нужно сразу запускать arp -a. Пауза более 15 секунд может привести к тому, что какие-то записи будут удалены из кэша.

Пакетный bat/cmd файл

То же решение в виде командного файла ip_by_mac.cmd с передачей MAC адреса в виде параметра будет выглядеть так:

Ограничения

Способ работает только для тех узлов, которые отвечают на ping (icmp запросы), т.е. если у компьютера icmp echo отключен, то этот командный файл не определит его IP адрес.

Остается неудобство в том, что требуется явно указывать подсеть, а так же ограничение на подсеть – командный файл работает только для сетей 255.255.255.0.

Пример выполнения команд (видео)

Файлы для скачивания

Этот командный файл, как и другие скрипты, можно скачать по ссылке

Достаточно часто бывают ситуации когда нужно выяснить аппаратный адрес сетевого устройства, но кроме стандартной консоли под рукой ничего нет, или просто хочется сэкономить время не устанавливая дополнительных программ, или не открывая консоли управления, такие как DHCP Management Console и т.д.

Как можно узнать MAC-адрес по ip-адресу или имени хоста имея просто рабочую станцию под управлением ОС Windows?

Ответ прост — с помощью стандартной командной строки.

Чтобы узнать адрес MAC удаленного компьютера или компьютера в локальной сети, необходимо:

1. В командной строке выполнить пинг этого компьютера (пинг ip-адреса или dns-имени).
Для этого нажмите комбинацию клавиш Win+R, введите cmd. В окне командной строки введите: ping ip-адрес или ping dns-имя.

Выполняем ping на искомый узел.

Если вы выполнили пинг имени хоста, то это имя в процессе будет преобразовано в ip-адрес.

2. По окончанию отработки комманды ping, введите команду arp -a. В результатах вывода команды найдите нужный вам ip-адрес и соответсвующий ему MAC-адрес.

Узнаем требуемый MAC-адрес

arp — это отображение и изменение таблиц преобразования ip-адресов в физические, используемые протоколом разрешения адресов (ARP).

Так же можно пропинговать броадкастовый адрес вашей сети.
Например, если у вас сеть 192.168.31.0 с маской 255.255.255.0, ваш адрес тогда будет 192.168.31.1-254, а броадкастовый — самый последний 192.168.31.255. Его то мы и должны пропинговать, потом дать команду: arp -a

Вы увидите все ip адреса в вашей сети с их маками, останется лишь найти нужный.

Если нужно узнать MAC по ip, то вводим команду: nbtstat -A 192.168.31.5

Хочу заметить, что данная команда не работает в powershell только в cmd.

Пожалуй, это всё.

Возможно вам так же понадобится узнать IP адрес по MAC адресу. Об этом методе описано в другой моей статье.