Я знаю IP-адрес хоста в своей локальной сети. Используя это, как я могу найти его MAC-адрес (без физического доступа к нему)?
10 ответов
Если вы находитесь на компьютере с Windows, откройте окно командной строки (Пуск ...Запустите ... cmd), ping
целевой компьютер, чтобы вы установили с ним контакт, а затем введите команду arp -a
чтобы просмотреть вашу локальную таблицу ARP, в которой будут перечислены IP-адреса и их соответствующие MAC-адреса, например,
C:\Users\L3K> arp -a
Interface: 192.168.200.128 --- 0xb
Internet Address Physical Address Type
192.168.200.1 00-50-7f-c3-5c-88 dynamic
192.168.200.2 00-50-7f-d1-e1-40 dynamic
192.168.200.6 00-80-77-dd-a8-6b dynamic
Если вы работаете в системе на основе Linux, установите утилиту arp-scan
, а затем из командной строки вы можете запросить сканирование вашей сети - в моем случае:
sudo arp-scan 192.168.200.0/24
Если вы используете интерфейс, отличный от Ethernet, скажем, беспроводной, вам необходимо указать его, например:
sudo arp-scan -I wlan0 192.168.200.0/24
Если вы не знаете, какой интерфейс используете, просто используйте соответствующую команду ниже.
ifconfig (For Debian based OS such as Ubuntu)
ip link (For OS like Arch Linux)
Команда arping
поставляется с пакетом iputils
в linux. Укажите IP-адрес для ping, и он возвращает MAC-адрес даже через коммутаторы и подсети в локальной сети (по крайней мере, в нашей локальной сети).
# arping -c 1 -I eth0 10.100.10.11
ARPING 10.100.10.11 from 10.100.10.25 eth0
Unicast reply from 10.100.10.11 [00:22:68:88:F3:90] 0.594ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)
Пытаться
getmac /s hostname
или же:
getmac /s IP
Вам нужен доступ администратора к машине, чтобы сделать это.
Если у вас есть управляемый коммутатор или ваш маршрутизатор позволяет вам просматривать его таблицу ARP, вы можете получить его оттуда.
Если компьютер, для которого у вас есть IP-адрес, подключен к сети, вы можете пропинговать его и получить его MAC из локальной таблицы ARP.
Общее замечание ради других: невозможно получить MAC-адрес для машин, которые находятся в другой локальной сети, так как в этом случае для адресации и доставки используются протоколы уровня 3, а MAC - это уровень 2.
просто используйте что-то вроде:
nmap -n -sP 192.168.146.0/24
после адаптации параметров к вашей настройке будет сканироваться вся ваша подсеть с указанием адресов IP и MAC
Если и ваша машина, и целевой компьютер находятся в одной подсети, вы можете просто пропинговать ее, чтобы ее ассоциация IP-MAC была зарегистрирована через протокол разрешения адресов (ARP).
ping -c1 $IP
arp -n | grep $IP
например, если я хочу найти IP 10.1.135.150
:
# ping -c1 10.1.135.150
PING 10.1.135.150 (10.1.135.150) 56(84) bytes of data.
64 bytes from 10.1.135.150: icmp_seq=1 ttl=64 time=1.88 ms
--- 10.1.135.150 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.883/1.883/1.883/0.000 ms
Затем запросите таблицу ARP
# arp -n | grep 10.1.135.150
10.1.135.150 ether 8c:ae:4c:f4:4d:e1 C eth0
Таким образом, MAC для 10.1.135.150 равен 8c:ae:4c:f4:4d:e1
Вы можете использовать такую утилиту, как http://trogonsoftware.com/trogon-mac-scanner.html или другой сканер адресов ip\mac, чтобы сканировать сеть на наличие адресов удаленных компьютеров в локальной сети.
Другой способ это:
nbtstat -a 192.168.1.1
(замените 192.168.1.1
на нужный адрес)
Кроме того, если getmac
используется на компьютере, отличном от Windows, вы получите:
ОШИБКА: сервер RPC недоступен.
Пока нет шлюза, маршрутизирующего трафик между компьютерами, любой перехватчик предоставит вам эту информацию.
Вы всегда можете обратиться к таблице arp на своем маршрутизаторе (в некоторых случаях маршрутизатор объединяет таблицы аренды arp и dhcp).