Jak znaleźć adres MAC komputera zdalnego?


34

Znam adres IP hosta w mojej własnej sieci LAN. Korzystając z tego, jak mogę znaleźć jego adres MAC (bez konieczności fizycznego dostępu do niego)?

Odpowiedzi:


46

Jeśli korzystasz z komputera z systemem Windows, otwórz okno poleceń (Start ... Uruchom ... cmd), pingmaszynę docelową, aby nawiązać z nim kontakt , a następnie wydaj polecenie, arp -aaby wyświetlić lokalną tabelę ARP, która wyświetli listę Adresy IP i odpowiadające im adresy MAC, np.

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

Jeśli korzystasz z systemu Linux, zainstaluj arp-scannarzędzie, a następnie z wiersza poleceń możesz poprosić o skanowanie sieci - w moim przypadku:

sudo arp-scan 192.168.200.0/24

Jeśli używasz interfejsu innego niż Ethernet, powiedzmy, bezprzewodowy, musisz to określić, np

sudo arp-scan -I wlan0 192.168.200.0/24

Jeśli nie wiesz, jakiego interfejsu używasz, po prostu użyj odpowiedniego polecenia poniżej.

ifconfig  (For Debian based OS such as Ubuntu)
ip link   (For OS like Arch Linux)

14
Działa tylko wtedy, gdy inny host znajduje się w tym samym segmencie sieci LAN.
AnonymousLurker

@ Linker3000, Jaki jest sens pingwcześniej arp -a?
Pacerier,

4
@Pacerier - polecenie arp wyświetla zawartość pamięci podręcznej protokołu rozpoznawania adresów, który mapuje adresy IP na adresy sprzętowe (mac). Jeśli nie skontaktowałeś się z docelowym adresem IP, nie będzie go w pamięci podręcznej. Ping to prosty sposób na skontaktowanie się z nim w celu dodania go do pamięci podręcznej. Możesz użyć dowolnego polecenia sieciowego, po prostu ping jest łatwy.
Kevin Jones,

19

Polecenie arpingjest dostarczane z iputilspakietem w systemie Linux. Podaj adres IP do pingowania, a zwróci on adres MAC, nawet między przełącznikami i podsieciami w sieci LAN (przynajmniej w naszej sieci LAN).

# 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
W Debianie są 2 pakiety: arpingi iputils-arping. arpingPakiet pracował dla mnie, choć interfejs sieciowy jest określona z małymi literami i:arping -c 1 -i eth0 10.100.10.11
Chronos

8

Próbować

getmac /s hostname

lub:

getmac /s IP

Aby to zrobić, potrzebujesz dostępu administratora do komputera.


Dlaczego nie skorzystać z tego, arp -aco nie wymaga dostępu administratora?
Pacerier,

2

Jeśli masz zarządzany przełącznik lub router pozwala wyświetlić jego tabelę ARP, możesz to uzyskać stamtąd.

Jeśli komputer, dla którego masz adres IP, jest online, możesz go pingować i pobrać jego MAC z lokalnej tabeli ARP.

Uwaga ogólna ze względu na innych: nie jest możliwe uzyskanie adresu MAC dla maszyn znajdujących się w innej sieci LAN, ponieważ w tym przypadku do adresowania i dostarczania są używane protokoły warstwy 3, a MAC to warstwa 2.


Tak naprawdę nie dał mu żadnych instrukcji, jak to zrobić.
GregD,

2
W przypadku przeglądania go na routerze wystarczy przejść do interfejsu internetowego i polować. Nie może być o wiele bardziej szczegółowe, ponieważ każdy router ma inny układ i zestaw stron dla administratora sieci. Wydaje mi się to trudnym -1, zwłaszcza że podałem więcej informacji niż MaQleod.
imoatama

2

po prostu użyj czegoś takiego:

nmap -n -sP 192.168.146.0/24

po dostosowaniu parametrów do konfiguracji skanuje całą podsieć, podając adresy IP i adresy MAC



1

Jeśli zarówno twój komputer, jak i komputer docelowy znajdują się w tej samej podsieci, możesz po prostu pingować je, aby zarejestrować powiązanie IP⟷MAC za pomocą protokołu rozpoznawania adresów (ARP).

ping -c1 $IP
arp -n | grep $IP

na przykład, jeśli chcę znaleźć adres 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

Następnie przeszukaj tabelę ARP

# arp -n | grep 10.1.135.150
10.1.135.150             ether   8c:ae:4c:f4:4d:e1   C                     eth0

Tak więc MAC 10.1.135.150 jest 8c:ae:4c:f4:4d:e1


0

Tak długo, jak nie ma bramy, która kierowałaby ruchem między komputerami, każdy sniffer przekaże ci te informacje.


Dzięki za odpowiedź Ofir. Jako pytanie cząstkowe, czy można to zrobić, jeśli host nie działa? Tak, mogę zapytać o pamięć podręczną ARP mojego własnego hosta, ale niestety obecnie nie zawiera interesującego mnie adresu IP. Zastanawiałem się więc, czy istnieje sposób, aby w jakiś sposób wyodrębnić, powiedzmy, pamięć podręczną ARP routera pośredniego i sprawdzić w tym?
Frederick

0

Zawsze możesz sprawdzić tabelę arp na routerze (w niektórych przypadkach router łączy tabele dzierżawy arp i dhcp razem).


Dokładnie tego szukam, ale jakie narzędzia lub polecenia pomogą mi to zrobić?
Frederick

Ale chwileczkę, jestem w tej samej sieci LAN, więc nie będzie routera, prawda?
Frederick

Typowe sieci LAN będą miały co najmniej jeden router. W zależności od routera masz różne opcje uzyskania go. Większość domowych routerów wymaga dostępu do interfejsu sieci Web w celu znalezienia tych informacji, bardziej złożone routery pozwalają na telnet lub zapytania za pośrednictwem portu konsoli w celu uzyskania tych informacji.
MaQleod,

0

Innym sposobem jest:

nbtstat -a 192.168.1.1

(zamień na 192.168.1.1żądany adres)


Ponadto, jeśli getmacjest używany na komputerze z systemem innym niż Windows, otrzymasz:

BŁĄD: serwer RPC jest niedostępny.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.