- Как узнать IP, зная MAC
- Узнать IP по MAC
- Re: Узнать IP по MAC
- Re: Узнать IP по MAC
- Re: Узнать IP по MAC
- Re: Узнать IP по MAC
- Re: Узнать IP по MAC
- Re: Узнать IP по MAC
- Re: Узнать IP по MAC
- Re: Узнать IP по MAC
- Re: Узнать IP по MAC
- Re: Узнать IP по MAC
- Re: Узнать IP по MAC
- Re: Узнать IP по MAC
- Re: Узнать IP по MAC
- Re: Узнать IP по MAC
- Re: Узнать IP по MAC
- Re: Узнать IP по MAC
- Re: Узнать IP по MAC
- Re: Узнать IP по MAC
- Получить все 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. И никакой пинг по широковещательным адресам Вам не поможет.
Посмотрите еще на 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 адресами в локальной сети, как бы вы поступили? Вопрос номер два: а для чего все это нужно, таким образом, я преследую несколько целей:
- Составить список всех зарегистрированных устройств
- Настроить авторизацию в сети только тех устройств из первого списка, которые реально определяют те устройства, которые реально работают и я их знаю, в общем как то так, позже обобщу все-то чего я хочу добиться этим пунктом.
План исполнения поставленной задачи:
- Просканировать локальную сеть по маске, используемой на предприятии, но может быть, что машины закрыты фаерволом, поэтому нужно посылать arp request ’ы.
- Посредством 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
адрес в Интернете Физический адрес Тип
192.168.0.1 00-15-5 d -0 a -06-00 динамический -> вот это и есть MAC адрес устройства, где первые 6 байт: 00-15-5 d это идентификатор производителя, вычисляется он по полной базе (Задача: прикрутить к скрипту опознавание кто это), а следующие 6 байт – это уникальный идентификатор сетевого адаптера установленного в системе.
Как я бы решал поставленную задачу:
Т.к. я преимущественно отожествляю себя, как Ubuntu специалист, то и средство на котором я буду разбирать пути решения – это система Ubuntu 12.04.5 серверная редакция:
Получить результат можно следующими способами:
А) Утилита arp — scan – данная утилита может просканировать все сеть и получить заветные значения: 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
Как видно выше и из документации ( arp — scan – 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
В комплекте с утилитой идет также утилита : arp — fingerprint – которая по своей базе отпечатком может косвенно определить, к какому типу операционных систем принадлежит тот или иной 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
Б) Вторым способом получения, точно такого же результата, как выше из утилиты arp — scan является сетевой сканер безопасности: — 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.
Источник