Ответы:
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 из других сетей.
Вышеупомянутая техника не будет работать на серверах Linux Samba. Они всегда будут возвращать 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 specialIP
Теперь для машины вне вашей подсети - нет стандартного приложения полки, которое делает это, я пытался подумать, может ли это сделать какое-либо сообщение ICMP, но на данный момент я думаю, что его нет. То, как устроена сеть, а не многоуровневая структура, это намеренно нежелательное поведение. Для экранирования или удаления информации, которая относится к уровням ниже настоящего, и, поскольку мы по сетям, используется IP, поэтому нет MAC.
Посмотрите, есть ли у вас сотрудничество на другом компьютере, вы можете написать небольшое приложение, которое инкапсулирует заголовок mac и отправляет вам ... конечно, если у вас есть сотрудничество с другого компьютера, зачем столько усилий, простой ifconfig -a делает работу для всех интерфейсов на этой машине.
Если у вас есть доступ к удаленному ПК или любому ПК в удаленной сети, вы можете использовать WMI или запускать различные приложения, чтобы получить MAC-адрес. Я не могу придумать другой способ получить MAC-адрес.
JR
Вы знаете производителя устройства? Если это так, вы можете получить часть MAC.
Единственное, о чем я могу думать, это vxlan, но я уверен, что это будет сложнее настроить, чем просто получить доступ к маршрутизатору, который будет иметь MAC напрямую.
Хорошо, как сказали ребята в другом ответе, ARP является протоколом второго уровня и не маршрутизируется, поэтому сканирование обычными методами не вернет вам MAC-адреса. пример
nmap -sn target
будет давать только MAC-адреса устройств, которые находятся в одном сегменте сети. Есть два сценария nmap, которые используют такие помощники, как nbtstat и snmp
NBTSTAT для этого необходимо, чтобы UDP-порт 137 был открыт на целевом объекте, команда 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, 6 - 4 и т. Д.) Адресов. Я только попробовал это на IPv6-адресе, на котором есть часть Mac
nmap -sV -sC target
(это команда из nmap https://nmap.org/nsedoc/scripts/address-info.html ), но при тестировании (на внутренних хостах fe80) требовалось -6, поэтому
nmap -sV -sC -6 target
Попробуйте Namp Intense Scan: nmap -T4 -A -v IP-address
я не знаю о роутере, но если у вас есть ip-адрес, вы можете использовать nmap для получения mac-адреса даже на вашем локальном хосте, вы также можете это сделать, так почему, черт возьми, вы хотите получить это от роутера или чего-то в этом роде? Если ваша ОС Linux, вы можете использовать Macchanger или множество других приложений, поэтому у меня нет никаких идей, почему вы хотите сделать это так.