Câu trả lời:
Địa chỉ MAC không được truyền qua bởi các bộ định tuyến. Bạn cần xem bảng ARP của bộ định tuyến.
Biên tập:
Trừ khi bạn có một số hình thức truy cập khác vào máy, vâng, điều đó là không thể. Nếu bạn có thể truy cập mạng trên mạng (VNC, RDP, SSH), thì bạn có thể làm điều đó, nhưng nếu không thì không.
Nếu bộ định tuyến của bạn không cung cấp cho bạn bảng ARP trên giao diện web của nó, bạn có thể xem liệu bạn có thể telnet không: nhiều bộ định tuyến gia đình có các chức năng nâng cao hơn mà chúng ẩn khỏi giao diện web.
Không thể đảm bảo rằng bạn có thể thấy địa chỉ MAC của các máy phía sau bộ định tuyến. Nhưng có một số giao thức có thể giúp bạn tìm địa chỉ MAC từ bất kỳ đâu trong mạng. Ví dụ: để tìm địa chỉ MAC của PC Windows trên mạng khác khi bạn biết địa chỉ IP của nó, bạn có thể sử dụng lệnh
nbtstat -A <IP Address>
Để làm điều tương tự từ máy Linux (đã cài đặt samba), hãy sử dụng lệnh
nmblookup -R -S -A <IP Address>
Nếu máy đang được đề cập không phải là máy windows và không có cách nào để trở thành một phần của mạng con khác. Sau đó, các tùy chọn duy nhất là nhìn thấy bảng địa chỉ MAC trong bộ định tuyến hoặc nếu có máy chủ DHCP trên toàn mạng chung thì bạn có thể thấy địa chỉ MAC trong nhật ký DHCP. Nhưng tôi đoán bạn phải là quản trị viên để truy cập bộ định tuyến hoặc máy chủ DHCP.
Do đó, nếu có nhiều máy windows trong mạng của bạn, bạn có thể tìm địa chỉ MAC cho chúng ngay cả khi không có trong mạng con của chúng. Nhưng nếu mạng có nhiều máy Linux thì không có cách nào tốt để tìm MAC từ các mạng khác.
Kỹ thuật trên sẽ không hoạt động trên các máy chủ samba Linux. Họ sẽ luôn trả về địa chỉ MAC là 00-00-00-00-00-00.
Nếu IP được đề cập không nằm trong mạng con được kết nối trực tiếp của bộ định tuyến, thì MAC sẽ không nằm trong bảng ARP của bộ định tuyến của bạn.
ARP chỉ hiển thị / có liên quan cho bước nhảy cuối cùng của kết nối IP (lớp 2). Mọi thứ giữa thực thể định tuyến đầu tiên và thực thể định tuyến cuối cùng là lớp 3, không sử dụng ARP của thực thể nguồn hoặc đích, mà là ARP của thực thể định tuyến được kết nối trực tiếp tiếp theo.
Tôi nghĩ những gì bạn muốn biết là -
Làm thế nào bạn có thể tìm thấy MAC cho một IP (máy) cụ thể không phải là một phần của mạng con của bạn?
Đối với tất cả các máy / IP trên mạng con của bạn, bảng IP-MAC được lưu trong ARP Cache, cục bộ trên máy của bạn. Đây là cùng một bộ đệm cho "xung đột độ phân giải IP". làm một cách đơn giản
$ arp -a | grep đặc biệtIP
Bây giờ đối với máy bên ngoài mạng con của bạn - không có tiêu chuẩn nào của ứng dụng kệ làm điều đó, tôi đã cố gắng nghĩ liệu có tin nhắn ICMP nào có thể làm được không, nhưng đến bây giờ tôi nghĩ không có gì. Vâng, cách thức kết nối mạng, thay vì phân lớp được thiết kế, đây là một hành vi cố ý không mong muốn. Để thoát hoặc xóa thông tin có liên quan đến các lớp bên dưới hiện tại và khi chúng tôi sử dụng IP trên mạng, do đó không có MAC.
Xem nếu bạn có hợp tác ở máy khác, bạn có thể viết một ứng dụng nhỏ, đóng gói tiêu đề mac và gửi cho bạn ... tất nhiên nếu bạn có sự hợp tác từ máy kia, tại sao điều này lại rất đơn giản nếu ifconfig -a thực hiện công việc đó, cho tất cả các giao diện trên máy đó.
Bạn chỉ có thể "nhìn thấy" địa chỉ mac của các máy chủ được bật trong cùng một mạng con. Sau đó, bạn có thể liệt kê tất cả các địa chỉ mac bằng lệnh arp:
arp -a
hoặc cho một địa chỉ IP duy nhất:
arp -a 192.168.0.1
Nếu bạn có quyền truy cập vào PC từ xa hoặc bất kỳ PC nào trên mạng từ xa, bạn có thể sử dụng WMI hoặc chạy các ứng dụng khác nhau để cung cấp cho bạn địa chỉ MAC. Tôi không thể nghĩ ra bất kỳ cách nào khác mà bạn có được địa chỉ MAC.
JR
Bạn có biết nhà sản xuất thiết bị? Nếu vậy, bạn có thể có được một phần của MAC.
Điều khác duy nhất tôi có thể nghĩ đến là vxlan nhưng tôi chắc chắn sẽ khó cài đặt nó hơn là chỉ truy cập vào bộ định tuyến có MAC trực tiếp.
Cũng như được nói bởi những người trong câu trả lời khác, ARP là một giao thức hai lớp không thể định tuyến được nên việc quét trong các phương thức thông thường sẽ không cung cấp cho bạn địa chỉ MAC. thí dụ
nmap -sn target
sẽ chỉ cung cấp địa chỉ MAC của các thiết bị trên cùng một phân đoạn mạng. Có hai tập lệnh nmap sử dụng các trình trợ giúp như nbtstat và snmp
NBTSTAT điều này đòi hỏi cổng UDP 137 phải được mở trên mục tiêu lệnh nmap là
nmap -sU --script nbtstat.nse -p 137 target
SNMP giao thức này phải hoạt động, cổng mở, để cung cấp cho chúng tôi bất kỳ thông tin nào về MAC của mục tiêu. Ngoài ra cổng UDP 161
nmap -sU -p 161 --script=snmp-interfaces target
Địa chỉ IPV6 này hoạt động khi truy xuất MAC từ IPv6 hoặc các địa chỉ tương tự (teredo, 6 đến 4, v.v.). Tôi chỉ thử nó trên địa chỉ IPv6 có một phần của mac trên chúng
nmap -sV -sC target
(đây là lệnh từ nmap https://nmap.org/nsedoc/scripts/address-info.html ) nhưng khi kiểm tra nó (trên máy chủ Fe80 nội bộ), nó yêu cầu -6 vì vậy
nmap -sV -sC -6 target
Hãy thử namp Intense Scan: nmap -T4 -A -v IP-address
Tôi không biết về bộ định tuyến nhưng nếu bạn có địa chỉ IP, bạn có thể sử dụng nmap để lấy địa chỉ mac ngay cả trong máy chủ lưu trữ cục bộ của mình, vậy tại sao bạn lại muốn lấy nó từ bộ định tuyến hoặc một số thứ tương tự? Nếu hệ điều hành của bạn là linux, bạn có thể sử dụng macchanger hoặc nhiều ứng dụng khác vì vậy tôi không có lý do tại sao bạn muốn làm điều này như thế.