Назад | Перейти на главную страницу

Получение MAC-адреса IP из-за маршрутизатора

Я хочу знать, если возможно, как получить MAC-адрес IP-адреса, если я нахожусь за маршрутизатором.

Я попытался выполнить команду ping для IP и проверить таблицу arp, но единственная запись - это MAC-адрес маршрутизатора.

Любые идеи?

Спасибо за прочтение.

MAC-адреса не передаются маршрутизаторами. Вам нужно посмотреть таблицу ARP маршрутизатора.

Редактировать:

Да, это невозможно, если у вас нет другой формы доступа к машине. Если вы можете войти в сеть, в которой он находится (VNC, RDP, SSH), вы можете это сделать, но в остальном нет.

Если ваш маршрутизатор не предоставляет вам таблицу ARP в своем веб-интерфейсе, вы могли бы увидеть, можете ли вы подключиться по telnet: многие домашние маршрутизаторы имеют более продвинутые функции, которые они скрывают от веб-интерфейса.

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

nbtstat -A <IP Address>

Чтобы сделать то же самое с Linux-машины (с установленной samba), используйте команду

nmblookup -R -S -A <IP Address>

Если рассматриваемая машина не является машиной Windows и нет возможности стать частью другой подсети. Тогда единственными вариантами будут видеть таблицу MAC-адресов в маршрутизаторе, или, если есть общий сетевой DHCP-сервер, вы можете увидеть MAC-адрес в журналах DHCP. Но я думаю, вы должны быть администратором для доступа к маршрутизатору или DHCP-серверу.

Следовательно, если в вашей сети много компьютеров с Windows, вы можете найти для них MAC-адрес, даже если они не находятся в их подсети. Но если в сети много машин с Linux, то нет очень распространенного способа найти MAC из других сетей.

Вышеупомянутый метод не работает на серверах Samba Linux. Они всегда будут возвращать MAC-адрес как 00-00-00-00-00-00.

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

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

Я думаю, что ты хочешь знать -

Как узнать MAC-адрес конкретного IP-адреса (машины), не входящего в вашу подсеть?

Для всех машин / IP-адресов в вашей подсети таблица IP-MAC хранится в ARP-кэше локально на вашем компьютере. Это тот же кеш, который дает "конфликты разрешения IP". сделать простой

$ arp -a | grep specificIP

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

Посмотрите, есть ли у вас сотрудничество на другом компьютере, вы можете написать небольшое приложение, которое инкапсулирует заголовок Mac и отправляет вам ... конечно, если у вас есть сотрудничество с другой машиной, зачем так много усилий простой ifconfig -a выполняет эту работу для всех интерфейсов на этой машине.

Вы можете «видеть» только MAC-адреса хостов, находящихся в той же подсети. Затем вы можете вывести список всех MAC-адресов с помощью команды arp:

arp -a

или для одного IP-адреса:

arp -a 192.168.0.1

Если у вас есть доступ к удаленному компьютеру или любому компьютеру в удаленной сети, вы можете использовать WMI или запускать различные приложения, чтобы получить MAC-адрес. Я не могу придумать другого способа получить MAC-адрес.

JR

Вы знаете производителя устройства? Если это так, вы можете получить часть МАС.

http://aruljohn.com/mac.pl

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

https://tools.ietf.org/html/rfc7348

Как сказали люди в другом ответе, ARP - это протокол второго уровня, который не маршрутизируется, поэтому сканирование обычными методами не вернет вам MAC-адреса. пример

nmap -sn target

даст только MAC-адреса устройств, которые находятся в одном сегменте сети. Есть два сценария nmap, которые используют помощники, такие как nbtstat и snmp.

NBTSTAT для этого требуется, чтобы на целевом компьютере был открыт порт 137 UDP, команда nmap

nmap -sU --script nbtstat.nse -p 137 target

SNMP этот протокол должен работать, его порт открыт, чтобы дать нам любую информацию о MAC-адресе цели. Также UDP порт 161

nmap -sU -p 161 --script=snmp-interfaces target

IPV6-адреса это работает при получении MAC-адресов с IPv6 или подобных адресов (teredo, 6to 4 и т. д.). Я пробовал только на IPv6-адресе, на котором есть часть Mac

nmap -sV -sC target

(это команда из nmap https://nmap.org/nsedoc/scripts/address-info.html), но при тестировании (на внутренних хостах fe80) требовалось -6, поэтому

nmap -sV -sC -6 target 

Попробуйте nmap Intense Scan: nmap -T4 -A -v IP-address

Я не знаю насчет маршрутизатора, но если у вас есть IP-адрес, вы можете использовать nmap для получения MAC-адреса даже на вашем локальном хосте, вы тоже можете это сделать, так какого черта вы хотите получить это от маршрутизатора или что-то в этом роде? если у вас Linux, вы можете использовать macchanger или множество других приложений, поэтому я не понимаю, почему вы хотите сделать это именно так.