Linux поиск по mac адресу

Как узнать 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

Очень простой сабж. Есть mac, как это сделать на простой клиентской машине в локальной сети? Если есть способ — подойдёт ли и для internet?

Re: Узнать IP по MAC

Можешь сделать броадкаст пинг а потом посмотреть таблицу arp

ping 192.168.255.255
arp -a

Re: Узнать IP по MAC

не катит. но идея неплоха, спасибо.

Re: Узнать IP по MAC

Re: Узнать IP по MAC

огромное спасибо, но это не вариант. те в моём случае (я совершенно случайно нашёл этот ип) пинг не проходит (ответа не будет). есть ли ещё какие принципиально новые способы?

(я нашёл ип, так как разбирался с мультикастом и у нас на 1-м ипе висит туева хуча этих «ретрансляторов» — то есть свезло). вопрос ребром — может ли сервер сам выдать каким-то образом arp таблицу сети/сегмента?

Re: Узнать IP по MAC

Для этого nmap есть. И нет никакой разницы, отвечает хост на пинг или нет, ибо на arp-запрос он все равно ответит.

Узнать IP по MAC — задача неоднозначная, так как IP на одном МАС может быть много. Тут только сканить, а затем arp -an. И никакой пинг по широковещательным адресам Вам не поможет.

Читайте также:  Приложение для отслеживания трафика windows

Посмотрите еще на arpwatch

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

Re: Узнать IP по MAC

>Для этого nmap есть

как мне указать nmap-y цель по MAC адресу?

>Я дико извиняюсь, но понимаете ли Вы, что это все относится к одному физическому сегменту, в котором и находится Ваш хост

даже если мы снифаем трафф в promisc.

это arpwatch в пределах сегмента, что очевидно впрочем. нужен какой-то аналог ping-а, но по MAC адресу.

Re: Узнать IP по MAC

>>Я дико извиняюсь, но понимаете ли Вы, что это все относится к одному физическому сегменту, в котором и находится Ваш хост

>даже если мы снифаем трафф в promisc.

‘s/физическому сегменту/широковещательному домену/’

Даже если 🙂 promisc ничего не меняет. Все arp-запросы и прочий не IP-трафик через маршрутизатор не ходит.

Re: Узнать IP по MAC

Re: Узнать IP по MAC

также есть arping
DESCRIPTION
The arping utility sends ARP and/or ICMP requests to the specified host and displays the replies. The host may
be specified by its hostname, its IP address, or its MAC address.

но опять таки в пределах одного сегмента .

Re: Узнать IP по MAC

>j262 ** (*) (20.07.2007 10:15:08)

arping не работает с маком, ему в destination нужен ip и за маршрутизатор его не пустят.

Резюме — дело дрянь.

Re: Узнать IP по MAC

почему не работает
!arpi
arping 00:03:6B:EF:77:E0
ARPING 00:03:6B:EF:77:E0
60 bytes from 172.16.0.8 (00:03:6b:ef:77:e0): icmp_seq=0 time=1.143 msec
60 bytes from 172.16.0.8 (00:03:6b:ef:77:e0): icmp_seq=1 time=1.080 msec
60 bytes from 172.16.0.8 (00:03:6b:ef:77:e0): icmp_seq=2 time=1.069 msec

ну да , за рутер не пустит .

Re: Узнать IP по MAC

>и за маршрутизатор его не пустят.

боюсь тебе поможет только изучение основ ethernet сетей

проще говоря, если ты не в одном _физическом_ сегменте, то мак-адрес тебе не поможет, да его у машины может и не быть (не ethernetом единым)

Re: Узнать IP по MAC

если целевая машина находится за сегментом, то это не её мак, а мак маршрутизатора;)

Re: Узнать IP по MAC

Тоесть маршрутизатор ставит свой мак при пересылке пакетов.

Re: Узнать IP по MAC

кстати, FYI, некоторые провайдеры сильно напрягаются и жалуются ФСБшникам если находят сетевушку в promisc режиме у клиентов.. а этот режим в принципе обнаружим. на просторах инета пару лет назад находил простенький сишный код для этого.

Re: Узнать IP по MAC

Обнаружимо, если реализация хреновая. Вроде, это давно исправили. Хотя, может и нет.

Re: Узнать IP по MAC

Горе человек, иди учи как устроены сетевой и канальный уровни; плюс маршрутизаци в IP сетях.

Не пудри мозги людям.

Re: Узнать IP по MAC

имхо можно и так:

nmap -sP 192.168.72-79.1-254 | grep 40:04:61:9d:a7:ac

Источник

Получить все MAC адреса устройств в локальной сети

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

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

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

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

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

C:\Users\ekzorchik>ping -n 1 192.168.0.1

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

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

C:\Users\ekzorchik>arp -a 192.168.0.1

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

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

Читайте также:  Инструментарий управления windows остановлена

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

Читайте также:  Linux версия для windows 7

— 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.

Источник

Оцените статью