Перейти к содержимому

Как по mac адресу узнать ip

  • автор:

Как узнать IP, зная MAC

Все команды необходимо выполнять от лица супер-пользователя. Начнем с установки программы arp-scan — она есть в репозиториях практически любого дистрибутива Linux. Именно она позволяет определить IP адреса устройств в сети по их MAC адресам. Для Debian-base дистрибутивов (Ubuntu, Mint. ) команда будет звучать так:

apt-get install arp-scan

Если же вы пользователь дистрибутивов ветки Red Hat (Centos, Fedora. ) выполните:

yum install arp-scan

Немного о том, как работает утилита. Она использует функции протокола ARP, который выполняет обратное действие — позволяет узнать MAC необходимого IP, широковещательно (каждому узлу сети) рассылая запрос содержания: «У кого такой IP — пришлите мне свой MAC». И узел с совпавшим IP отвечает: «Это я, а это мой MAC».

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

arp-scan -T aa:20:5c:64:71:bf 192.168.1.0/24 | grep aa:20:5c:64:71:bf

В данном примере сообщения будут отправлены узлу с MAC-адресом aa:20:5c:64:71:bf, для перебора будет использована сеть 192.168.1.0/24. /24 — это маска подсети, указывающая на диапазон перебираемых IP адресов: 192.168.1.1-192.168.1.254. Диапазон можно указывать и в таком формате. GREP в конце команды позволяет отфильтровать вывод только для данного MAC адреса. Это связано с тем, что если ваш коммутатор еще не успел «обучиться» данному MAC адерсу, он разошлет сообщения широковещательно (всем узлам), и некоторые узлы с совпавшем IP адресом из диапазона перебираемых адресов могут решить, что это сообщение им, и подзасорят вывод нашей команды.

Помимо вышеописанной задачи — «Узнать IP по MAC адресу», данная утилита используется для составления списка IP адресов сети в связке с их MAC адресами. В этом случае MAC адрес узла через ключ «-T» указывать не нужно — пускай сообщения идут всем узлам сети широковещательно:

Вывод команды будет содержать список всех узлов с IP из указанного диапазона и их MAC-адреса

Могу ли я найти IP-адрес на основе MAC-адреса?

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

Связь между MAC-адресом и IP-адресом

MAC-адрес (адрес управления доступом к среде) и IP-адрес (адрес интернет-протокола) — это два разных типа адресов. MAC-адрес относится к физическому адресу сетевого адаптера (например, сетевой карты), который уникален в глобальном масштабе и предварительно настроен производителем для идентификации устройства, подключенного к сети. С другой стороны, IP-адрес — это логический адрес устройства в сети, который настраивается сетевым администратором для определения местоположения устройства в сети. MAC-адрес — это 48-битный адрес, обычно представленный в шестнадцатеричном формате с 6 байтами, разделенными двоеточиями, например, 08:00:27:7D:9C:14. IP-адрес — это 32-битный адрес, обычно представленный в десятичном формате с 4 байтами, разделенными точками, например, 192.168.1.1. Что такое IP-адрес?

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

mac address vs ip address

Могу ли я найти IP-адрес на основе MAC-адреса?

Возвращаясь к первоначальному вопросу, могу ли я найти IP-адрес на основе MAC-адреса?

Ответ таков: в общем случае вы не можете напрямую найти IP-адрес по MAC-адресу. Однако в локальной сети (LAN) вы можете использовать протокол ARP для сопоставления MAC-адреса с IP-адресом.

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

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

  1. Откройте интерфейс командной строки. В системе Windows нажмите клавиши Win + R, введите «cmd» в диалоговом окне «Выполнить», а затем нажмите «ОК», чтобы открыть интерфейс командной строки. В системах Linux или macOS вы можете открыть терминал, чтобы открыть интерфейс командной строки. open
  2. Введите команду ARP. В интерфейсе командной строки введите команду «arp -a», а затем нажмите клавишу «Enter». Эта команда отобразит список MAC-адресов и IP-адресов всех известных устройств в локальной сети. enter
  3. Найдите целевое устройство. Найдите MAC-адрес, который вы хотите найти в списке, затем IP-адрес этого устройства с MAC-адресом будет показан в столбце слева от него. Например, если MAC-адрес — d8-12-65-85-56-79, IP-адрес соответствующего ему устройства — 192.168.100.136. find

Повторим еще раз: использование команды ARP для поиска IP-адреса, как описано выше, должно выполняться в той же локальной сети (LAN). Если вы хотите найти IP-адрес устройства, которое не находится в той же локальной сети, вам нужно будет использовать другие инструменты и методы.

Определить IP адрес по MAC адресу

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

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

Команды определения IP адреса по MAC адресу

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

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

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

arp -a | find /i "01-23-45-67-89-ab"

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

Это происходит потому, что 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, то:

for /L %a in (1,1,254) do @start /b ping 192.168.1.%a -n 2 > nul

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

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

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

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

То же решение в виде командного файла ip_by_mac.cmd с передачей 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"
ip_by_mac 01-23-45-67-89-ab
192.168.1.221 01-23-45-67-89-ab динамический

Ограничения

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

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

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

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

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

Как узнать ip по mac-адресу?

Есть набор mac-адресов некоторого количества PC, как под Windows или Linux узнать их IP-адреса, если соединения с этими компьютерами ни разу не происходило и arp пуст?

p.s. Можно предложить вариант как для Linux так и для Windows, под рукой есть обе ОС

  • Вопрос задан более трёх лет назад
  • 198635 просмотров

Комментировать
Решения вопроса 2

Можно попробовать вот так (для Windows, в консоли)
Запустите пинг на бродкастовый адрес вашей сети.
Например если у вас сеть 192.168.0.0 с маской 255.255.255.0, ваш адрес тогда будет 192.168.0.1-254, а бродкастовый — самый последний 192.168.0.255. Вот именно его нужно попинговать, потом дать команду
arp -a
Увидите все ip адреса в вашей сети с их маками. Ну а там уже найдете нужный.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *