Як знайти MAC-адресу віддаленого комп'ютера?


34

Я знаю IP-адресу хоста в моїй власній локальній мережі. Використовуючи це, як я можу знайти його MAC-адресу (без фізичного доступу до неї)?

Відповіді:


46

Якщо ви перебуваєте на машині 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)

14
Працює лише в тому випадку, якщо інший хост знаходиться в тому ж сегменті локальної мережі.
AnonymousLurker

@ Linker3000, в чому сенс pingраніше arp -a?
Пейсьєр

4
@Pacerier - команда arp показує вміст кешу протоколу Resolution Protocol, який відображає IP-адреси на апаратні (mac) адреси. Якщо ви не зв’язалися з цільовою IP-адресою, вона не буде в кеші. Ping - це простий спосіб зв’язатися з ним, щоб додати його до кеша. Ви можете використовувати будь-яку мережеву команду, просто ping - це легка.
Кевін Джонс

19

Команда 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)

1
У Debian є 2 пакети: arpingі iputils-arping. arpingПакет працював для мене, хоча мережевий інтерфейс зазначено з малими i:arping -c 1 -i eth0 10.100.10.11
Chronos

8

Спробуйте

getmac /s hostname

або:

getmac /s IP

Для цього вам потрібен доступ адміністратора до машини.


Чому б не просто використовувати той, arp -aщо не потребує доступу адміністратора?
Pacerier

2

Якщо у вас є керований комутатор або ваш маршрутизатор дозволяє переглядати його таблицю ARP, ви можете отримати це звідти.

Якщо комп'ютер, для якого ви маєте IP-адресу, є в Інтернеті, ви можете пінг його і отримати його MAC від локальної таблиці ARP.

Загальна примітка заради інших: неможливо отримати MAC-адресу для машин, які знаходяться в іншій локальній мережі, оскільки для адреси та доставки в цьому випадку використовуються протоколи рівня 3, а MAC - рівень 2.


Насправді не давали йому ніяких інструкцій щодо того, як це зробити.
GregD

2
У випадку перегляду його на маршрутизаторі, ви просто переходите до веб-інтерфейсу і полюєте навколо. Не може бути набагато конкретнішим, ніж це, оскільки кожен маршрутизатор має різний макет і набір сторінок для свого веб-адміністратора. Мені це здається суворим -1, тим більше, що я дав більше інформації, ніж MaQleod.
imoatama

2

просто використовуйте щось на кшталт:

nmap -n -sP 192.168.146.0/24

після адаптації параметрів до вашої установки це сканує всю вашу підмережу, надаючи IP та MAC-добавки


1

Ви можете скористатися утилітою на зразок http://trogonsoftware.com/trogon-mac-scanner.html або іншим сканером адрес ip \ mac для сканування мережі для адреси віддалених комп'ютерів у локальній мережі.


Також існує безліч безкоштовних варіантів ... шукаю "IP-сканер"
JoshP

1

Якщо і ваша машина, і цільова машина знаходяться в одній підмережі, ви можете просто проконтролювати її, щоб змусити її реєстрацію асоціації IP toMAC через протокол вирішення адреси (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


0

Поки немає шлюзу, який би здійснював маршрутизацію трафіку між комп'ютерами, будь-який sniffer передасть вам цю інформацію.


Дякую за відповідь Ofir. Чи є підпитанням, як це зробити, якщо хост, про який йде мова, не працює? Так, я міг би запитати ARP-кеш власного хоста, але він, на жаль, наразі не містить IP, який мене цікавить. Тож мені було цікаво, чи є спосіб якимось чином витягнути, скажімо, кеш ARP посередника маршрутизатора і шукати в цьому?
Фредерік

0

Ви завжди можете проконсультуватися з таблицею arp на маршрутизаторі (у деяких випадках маршрутизатор поєднує таблиці оренди arp і dhcp разом).


Я саме шукаю, але які інструменти чи команди допоможуть мені це зробити?
Фредерік

Але почекайте хвилинку, я в тій же локальній мережі, щоб не було жодного маршрутизатора, правда?
Фредерік

У типових локальних мережах буде принаймні один маршрутизатор. Залежно від маршрутизатора, у вас є різні варіанти, як його отримати. Більшість домашніх маршрутизаторів потрібно отримати доступ до нього за допомогою веб-інтерфейсу для того, щоб знайти цю інформацію, а більш складні маршрутизатори дозволять вам телефонувати або запитувати через консольний порт, щоб отримати цю інформацію.
MaQleod

0

Ще один спосіб:

nbtstat -a 192.168.1.1

(замінити 192.168.1.1бажаною адресою)


Крім того, якщо getmacвін використовується на комп'ютері, який не працює під керуванням Windows, ви отримаєте:

ПОМИЛКА: сервер RPC недоступний.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.