Làm thế nào để tìm địa chỉ MAC của một máy tính từ xa?


34

Tôi biết địa chỉ IP của một máy chủ lưu trữ trên mạng LAN của riêng tôi. Sử dụng điều đó, làm thế nào tôi có thể tìm thấy địa chỉ MAC của nó (mà không phải truy cập vật lý)?

Câu trả lời:


46

Nếu bạn đang sử dụng máy Windows, hãy mở hộp lệnh (Bắt đầu ... Chạy ... cmd), pingmáy đích để bạn đã liên hệ với nó , sau đó đưa ra lệnh arp -ađể xem bảng ARP cục bộ của bạn, danh sách này sẽ liệt kê Địa chỉ IP và địa chỉ MAC tương ứng của chúng, ví dụ:

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

Nếu bạn đang sử dụng hệ thống dựa trên Linux, hãy cài đặt arp-scantiện ích và sau đó từ dòng lệnh bạn có thể yêu cầu quét mạng của mình - trong trường hợp của tôi:

sudo arp-scan 192.168.200.0/24

Nếu bạn đang sử dụng một giao diện khác ngoài Ethernet, không dây, bạn sẽ cần chỉ định điều đó, chẳng hạn như

sudo arp-scan -I wlan0 192.168.200.0/24

Nếu bạn không biết bạn đang sử dụng giao diện nào, chỉ cần sử dụng lệnh thích hợp bên dưới.

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

14
Chỉ hoạt động nếu máy chủ khác nằm trên cùng phân khúc LAN.
AnonymousLurker

@ Linker3000, điểm pingtrước đây là arp -agì?
Pacerier

4
@Pacerier - lệnh arp hiển thị nội dung của bộ đệm Giao thức phân giải địa chỉ, ánh xạ địa chỉ IP đến địa chỉ phần cứng (mac). Nếu bạn chưa liên hệ với địa chỉ IP đích, thì nó sẽ không nằm trong bộ đệm. Ping là một cách đơn giản để liên hệ với nó để thêm nó vào bộ đệm. Bạn có thể sử dụng bất kỳ lệnh mạng nào, chỉ cần ping là một điều dễ dàng.
Kevin Jones

19

Lệnh arpingđi kèm với iputilsgói trên linux. Chỉ định một địa chỉ IP để ping và nó trả về địa chỉ MAC, thậm chí trên các thiết bị chuyển mạch và mạng con trên mạng LAN (ít nhất là trên mạng LAN của chúng tôi).

# 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
Trong Debian, có 2 gói: arpingiputils-arping. Các arpinggói làm việc cho tôi, mặc dù giao diện mạng được quy định với một trường hợp thấp hơn i:arping -c 1 -i eth0 10.100.10.11
chronos

8

Thử

getmac /s hostname

hoặc là:

getmac /s IP

Bạn cần quản trị viên truy cập vào máy để làm điều này.


Tại sao không sử dụng arp -amà không cần quyền truy cập quản trị viên?
Pacerier

2

Nếu bạn có một công tắc được quản lý hoặc bộ định tuyến của bạn cho phép bạn xem bảng ARP của nó, bạn có thể lấy bảng này từ đó.

Nếu máy tính bạn có IP cho trực tuyến, bạn có thể ping nó và lấy MAC từ bảng ARP cục bộ của bạn.

Một lưu ý chung cho người khác: không thể lấy địa chỉ MAC cho các máy nằm trên một mạng LAN khác vì các giao thức Lớp 3 được sử dụng để đánh địa chỉ và phân phối trong trường hợp này và MAC là Lớp 2.


Không thực sự cho anh ta bất kỳ hướng dẫn về "làm thế nào" để làm điều này.
GregD

2
Trong trường hợp xem nó trên bộ định tuyến, bạn chỉ cần vào giao diện web và tìm kiếm xung quanh. Không thể cụ thể hơn thế vì mỗi bộ định tuyến có bố cục và bộ trang khác nhau cho quản trị viên web của nó. Có vẻ như là một -1 khắc nghiệt đối với tôi, đặc biệt là vì tôi đã cung cấp nhiều thông tin hơn MaQleod.
imoatama

2

chỉ cần sử dụng một cái gì đó như:

nmap -n -sP 192.168.146.0/24

sau khi điều chỉnh các thông số cho thiết lập của bạn, nó sẽ quét toàn bộ mạng con của bạn để cung cấp các địa chỉ IP và MAC



1

Nếu cả máy của bạn và máy đích đều nằm trên cùng một mạng con, bạn chỉ có thể ping nó để khiến liên kết IP⟷MAC của nó được đăng ký thông qua Giao thức phân giải địa chỉ (ARP).

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

ví dụ nếu tôi muốn tìm IP của 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

Sau đó truy vấn bảng ARP

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

Vậy MAC của 10.1.135.150 là 8c:ae:4c:f4:4d:e1


0

Miễn là không có cổng định tuyến lưu lượng giữa các máy tính, bất kỳ trình thám thính nào cũng sẽ cung cấp cho bạn thông tin này.


Cảm ơn câu trả lời của Ofir. Là một câu hỏi phụ, có cách nào để làm điều này nếu máy chủ trong câu hỏi không hoạt động? Có, tôi có thể truy vấn bộ đệm ARP của máy chủ lưu trữ của mình, nhưng thật không may hiện tại nó không chứa IP mà tôi quan tâm. Vì vậy, tôi tự hỏi liệu có cách nào để giải nén bằng cách nói bộ đệm ARP của bộ định tuyến trung gian và tìm kiếm trong đó không?
Frederick

0

Bạn luôn có thể tham khảo bảng arp trên bộ định tuyến của mình (trong một số trường hợp, bộ định tuyến kết hợp các bảng cho thuê arp và dhcp với nhau).


Chính xác những gì tôi đang tìm kiếm, nhưng công cụ hoặc lệnh nào sẽ giúp tôi làm điều đó?
Frederick

Nhưng đợi một chút, tôi ở cùng mạng LAN, vậy sẽ không có bộ định tuyến nào phải không?
Frederick

Mạng LAN thông thường sẽ có ít nhất một bộ định tuyến. Tùy thuộc vào bộ định tuyến, bạn có các tùy chọn khác nhau về cách lấy nó. Hầu hết các bộ định tuyến gia đình bạn cần truy cập bằng Giao diện web để tìm thông tin đó, các bộ định tuyến phức tạp hơn sẽ cho phép bạn telnet hoặc truy vấn qua cổng bảng điều khiển để có được thông tin đó.
MaQleod

0

Một cách khác là:

nbtstat -a 192.168.1.1

(thay thế 192.168.1.1bằng địa chỉ mong muốn)


Ngoài ra, nếu getmacđược sử dụng trên máy tính không chạy Windows, bạn sẽ nhận được:

LRI: Máy chủ RPC không khả dụng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.