Как найти мак адрес в сети

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 секунд.

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

Достаточно часто бывают ситуации когда нужно выяснить аппаратный адрес сетевого устройства, но кроме стандартной консоли под рукой ничего нет, или просто хочется сэкономить время не устанавливая дополнительных программ, или не открывая консоли управления, такие как 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 адресу. Об этом методе описано в другой моей статье.

Итак, перед Вами поставлена задача, провести соответствие устройств с их MAC адресами в локальной сети, как бы вы поступили? Вопрос номер два: а для чего все это нужно, таким образом, я преследую несколько целей:

  • Составить список всех зарегистрированных устройств
  • Настроить авторизацию в сети только тех устройств из первого списка, которые реально определяют те устройства, которые реально работают и я их знаю, в общем как то так, позже обобщу все-то чего я хочу добиться этим пунктом.

План исполнения поставленной задачи:

  1. Просканировать локальную сеть по маске, используемой на предприятии, но может быть, что машины закрыты фаерволом, поэтому нужно посылать arp request ’ы.
  2. Посредством ARP запрос проверить каждый узел сети на получение его MAC адреса, уникального идентификатора устройства.

MAC адрес – это, к примеру:

C:Usersekzorchik>ping -n 1 192.168.0.1

Обмен пакетами с 192.168.0.1 по с 32 байтами данных:

Ответ от 192.168.0.1: число байт=32 время=2мс TTL =128

C:Usersekzorchik>arp -a 192.168.0.1

Интерфейс: 192.168.0.186 — 0 xb

адрес в Интернете Физический адрес Тип

192.168.0.1 00-15-5 d -0 a -06-00 динамический -> вот это и есть MAC адрес устройства, где первые 6 байт: 00-15-5 d это идентификатор производителя, вычисляется он по полной базе (Задача: прикрутить к скрипту опознавание кто это), а следующие 6 байт – это уникальный идентификатор сетевого адаптера установленного в системе.

Читайте также:  Как объединить слои в кореле

Как я бы решал поставленную задачу:

Т.к. я преимущественно отожествляю себя, как Ubuntu специалист, то и средство на котором я буду разбирать пути решения – это система Ubuntu 12.04.5 серверная редакция:

Получить результат можно следующими способами:

А) Утилита arpscan – данная утилита может просканировать все сеть и получить заветные значения: IP & MAC

$ sudo apt-get install arp-scan –y

Запускаю утилиту на сканирование текущей сети, в которой сетевой адаптер получил от DHCP сервера IP адрес:

$ arp-scan —interface=eth0 —localnet

You need to be root, or arp-scan must be SUID root, to open a link-layer socket.

link _ open : Operation not permitted

Как видно выше и из документации ( arpscan – help ) утилита может работать только с правами root , поэтому задействуем утилиту sudo для предоставления ей таких прав на запуск:

$ sudo arp-scan —interface=eth0 —localnet

Interface: eth0, datalink type: EN10MB (Ethernet)

Starting arp-scan 1.8.1 with 256 hosts (http://www.nta-monitor.com/tools/arp-sca n/)

192.168.0.1 00:15:5d:0a:06:00 Microsoft Corporation

192.168.0.2 00:15:5d:0a:06:01 Microsoft Corporation

192.168.0.3 00:50:56:9c:25:c3 VMware, Inc.

192.168.0.5 00:21:91:fb:c9:45 D-Link Corporation

192.168.0.6 00:22:64:0a:e0:e8 Hewlett Packard

192.168.0.7 00:15:17:fa:a6:ac Intel Corporate

192.168.0.9 00:15:5d:0a:06:0d Microsoft Corporation

192.168.0.10 00:0c:29:34:c4:b4 VMware, Inc.

192.168.0.11 00:0c:29:c2:ee:15 VMware, Inc.

192.168.0.12 d8:eb:97:d0:5d:0d (Unknown)

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

Сохранить его в txt

Открыть в программе LibreOffice Calc и произвести с ним некоторое форматирование, добавив такие колонки, как: Сервис на этом IP адресе, местонахождение устройства.

На заметку: Также можно использовать данную утилиту не для всего пула устройства в сети, а для конкретных IP адресов:

$ sudo arp-scan —interface=eth0 192.168.0.1 192.168.0.20 192.168.0.10

Interface: eth0, datalink type: EN10MB (Ethernet)

Starting arp-scan 1.8.1 with 3 hosts (http://www.nta-monitor.com/tools/arp-scan/)

192.168.0.20 00:15:17:73:be:84 Intel Corporate

192.168.0.1 00:15:5d:0a:06:00 Microsoft Corporation

192.168.0.10 00:0c:29:34:c4:b4 VMware, Inc.

6 packets received by filter, 0 packets dropped by kernel

Ending arp-scan 1.8.1: 3 hosts scanned in 0.106 seconds (28.30 hosts/sec). 3 responded

Просканировать локальную сеть, ограничив результаты маской подсети:

$ sudo arp-scan —interface=eth0 192.168.0.0/24

$ sudo arp-scan —interface=eth0 192.168.0.0:255.255.255.0

Просканировать локальную сеть, огранив результаты, указанным диапозоном IP адресов:

$ sudo arp-scan —interface=eth0 192.168.0.1-192.168.0.10

Interface: eth0, datalink type: EN10MB (Ethernet)

Starting arp-scan 1.8.1 with 10 hosts (http://www.nta-monitor.com/tools/arp-scan/)

192.168.0.1 00:15:5d:0a:06:00 Microsoft Corporation

192.168.0.2 00:15:5d:0a:06:01 Microsoft Corporation

192.168.0.3 00:50:56:9c:25:c3 VMware, Inc.

192.168.0.6 00:22:64:0a:e0:e8 Hewlett Packard

192.168.0.5 00:21:91:fb:c9:45 D-Link Corporation

192.168.0.7 00:15:17:fa:a6:ac Intel Corporate

192.168.0.9 00:15:5d:0a:06:0d Microsoft Corporation

192.168.0.10 00:0c:29:34:c4:b4 VMware, Inc.

11 packets received by filter, 0 packets dropped by kernel

Ending arp-scan 1.8.1: 10 hosts scanned in 0.363 seconds (27.55 hosts/sec). 8 responded

В комплекте с утилитой идет также утилита : arpfingerprint – которая по своей базе отпечатком может косвенно определить, к какому типу операционных систем принадлежит тот или иной IP адрес:

$ sudo arp-fingerprint -o "—interface=eth0 —numeric" 192.168.0.1

192.168.0.1 11110100000 FreeBSD 5.3, 7.0, DragonflyBSD 2.0, Win98, WinME, NT4, 2000, XP, 2003, Catalyst IOS 12.0, 12.1, 12.2, FortiOS 3.00

$ sudo arp-fingerprint -o "—interface=eth0 —numeric" 192.168.0.10

192.168.0.10 01010100000 Linux 2.2, 2.4, 2.6, Vista, 2008, Windows7

Из обоих примеров, я вынес для себя, что получаемые результаты слишком расплывчаты и не могут со 100% точностью характеризовать систему.

Также очень интересным считаю, это выявление факта того, что в сети каким либо образом появляется двойник (конфликт) с точно таким же IP адресом как и у зарегистрированного клиента:

$ sudo arp-scan —interface=eth0 —arpspa=dest 192.168.0.10

За дополнительными параметрами следует обращаться к справочной информации: man arp — scan

Б) Вторым способом получения, точно такого же результата, как выше из утилиты arpscan является сетевой сканер безопасности: — nmap

$ sudo apt-get install nmap –y

На заметку: обозначение опций используемых для получения результата: IP = MAC

Читайте также:  Как из одного формата видео сделать другой

— sP -> Пинг сканирование — просто определить, работает ли хост

— PR -> Задействовать проверку ARP Ping ,т.е. по хосту определить производителя сетевой карточки.

$ sudo nmap -sP -PR 192.168.0.* | head -n 20

Starting Nmap 5.21 ( http://nmap.org ) at 2015-02-09 09:34 MSK

Nmap scan report for server.dsplit.local (192.168.0.1)

Host is up (0.0030s latency).

MAC Address: 00:15:5D:0A:06:00 (Microsoft)

Nmap scan report for ekt-ts10.dsplit.local (192.168.0.2)

Host is up (0.0027s latency).

MAC Address: 00:15:5D:0A:06:01 (Microsoft)

Nmap scan report for tserver.dsplit.local (192.168.0.3)

Host is up (0.0027s latency).

MAC Address: 00:50:56:9C:25:C3 (VMware)

Nmap scan report for vmw1.dsplit.local (192.168.0.5)

Host is up (0.0082s latency).

MAC Address: 00:21:91:FB:C9:45 (D-Link)

Nmap scan report for 192.168.0.6

$ sudo nmap -sP 192.168.0.1/24 | grep ‘MAC’ | awk ‘

Всё, конечно же, хорошо, но вот получаемый вывод без дополнительного форматирования не очень удобен для экспорта в программу Calc для последующей обработки, но задачу свою утилита nmap выполняет также хорошо.

В) Третьим способом это использование расширенной версии стандартной утилиты ping , а именно утилита fping которая проверяет доступность систем в сети путем отправки ICMP ECHO _ REQUEST пакетов, но с указанием нескольких узлов или тектового файла со списком узлов

$ sudo apt-get install fping –y

Определить список хостов, которые находятся online в сети:

$ fping -g 192.168.0.1/24 2>&1 | grep alive

192.168.0.1 is alive

192.168.0.2 is alive

192.168.0.3 is alive

192.168.0.5 is alive

192.168.0.6 is alive

Определить все живые хосты в сети и произвести их опрос на предмет, какой сетевой адаптер установлен на этой системе:

$ fping -r0 -g 192.168.0.1/24 2>&1 | grep alive | arp –a

$ fping -r0 -g 192.168.0.1/24 2>&1 | grep alive | arp -a | grep -v "incomplete"

npi04e51e (192.168.0.199) at bc:5f:f4:af:c6:c5 [ether] on eth0

? (192.168.0.130) at 00:09:45:58:04:be [ether] on eth0

constr-i7 (192.168.0.65) at 14:14:4b:1e:25:f9 [ether] on eth0

? (192.168.0.158) at 00:09:45:58:03:9e [ether] on eth0

ws13 (192.168.0.93) at 8c:89:a5:29:38:67 [ether] on eth0

meb-015 (192.168.0.154) at e0:cb:4e:82:95:0e [ether] on eth0

? (192.168.0.24) at d8:eb:97:d2:ae:c2 [ether] on eth0

? (192.168.0.89) at 00:09:45:59:27:ae [ether] on eth0

? (192.168.0.150) at 00:0b:82:25:75:9f [ether] on eth0

android-2c8fcfe7f74b52e1 (192.168.0.85) at a0:b3:cc:ca:07:71 [ether] on eth0

holml (192.168.0.146) at 00:0c:29:21:16:82 [ether] on eth0

, где значение наиболее нужных в пояснение ключей:

grep — v « incomplete « –> исключить из вывода строки содержащие слово “ incomplete ”

Также можно и так:

Определяем широковещательный адрес в сети:

$ ifconfig | grep "Bcast"

inet addr:192.168.0.10 Bcast:192.168.0.255 Mask:255.255.255.0

Делаем запрос к широковещательному адресу в сети:

$ pinb -b -c1 192.168.0.255

А теперь производим запрос к локальному кэшу для извлечения информации по IP адресам и их MAC адресам:

? (192.168.0.89) at 00:09:45:59:27:ae [ether] on eth0

? (192.168.0.187) at 00:09:45:59:cb:96 [ether] on eth0

? (192.168.0.170) at 00:09:45:58:03:86 [ether] on eth0

? (192.168.0.62) at 34:08:04:16:31:36 [ether] on eth0

? (192.168.0.157) at 00:09:45:58:03:9c [ether] on eth0

client4 (192.168.0.66) at 00:09:45:5a:a3:4c [ether] on eth0

? (192.168.0.57) at 00:09:45:5a:f4:5e [ether] on eth0

tserver.dsplit.local (192.168.0.3) at 00:50:56:9c:25:c3 [ether] on eth0

c377a6442 (192.168.0.40) at 14:14:4b:b1:76:90 [ether] on eth0

pc (192.168.0.134) at 00:09:45:59:f8:16 [ether] on eth0

? (192.168.0.192) at f8:d1:11:88:21:1c [ether] on eth0

ws17 (192.168.0.175) at 00:09:45:58:04:c6 [ether] on eth0

npi05c1a0 (192.168.0.51) at 2c:44:fd:05:c1:a0 [ether] on eth0

? (192.168.0.158) at 00:09:45:58:03:9e [ether] on eth0

rpcws (192.168.0.182) at 00:09:45:5a:a2:64 [ether] on eth0

? (192.168.0.58) at 00:09:45:58:03:96 [ether] on eth0

Вывод: утилита также отрабатывает поставленную задачу, после конечно загруженный вывод в программу LibreOffice Calc позволит привести результаты к упорядоченному представлению.

Итак, из опробованных трех утилит я не могу выделить фаворита, потому используя каждую из них я получаю результаты наиболее подходящие для выполнения тех или иных задач.

На этом считаю, данную заметку завершенной, я добился решения поставленной задачи по первому пункту, второй же предусматривает тонкую настройку оборудования, посредством которого будет ограничиваться доступ, а это уже тема отдельной заметки. В последствии я, конечно же покажу, как я это делал. А пока все, с уважением – автор блога ekzorchik.

Adblock
detector