Làm thế nào để tìm ra địa chỉ mac của tất cả các máy trên mạng


31

Có cách nào dễ dàng để tìm ra địa chỉ mac của tất cả các máy trên mạng của tôi thay vì thực hiện SSH vào từng máy và ifconfig | grep HWaddrnếu có 300 máy trên mạng tôi thực sự cần một giải pháp dễ dàng.


2
Để hoàn thiện: arp -n 0.0.0.0 Trong đó 0.0.0.0 là địa chỉ IP của thiết bị. Lưu ý rằng bạn vẫn sẽ tìm kiếm từng cái một. Đôi khi bạn chỉ muốn một cái, và điều này chắc chắn nhanh hơn so với sshing cho mỗi hộp. Nếu đó là hộp Windows hoặc máy in thì sao?
d -_- b

2
sudo arp-scan --localnet
Silver Moon

Câu trả lời:


34

Bạn có thể sử dụng nmap để chạy quét ping.

nmap -sP 192.168.254.*

Starting Nmap 5.00 ( http://nmap.org ) at 2011-03-09 11:32 GMT
Host xyzzy.lan (192.168.254.189) is up (0.00022s latency).
MAC Address: 00:0C:29:5B:A5:E0 (VMware)
Host plugh.lan (192.168.254.196) is up (0.00014s latency).
MAC Address: 00:0C:29:2E:78:F1 (VMware)
Host foo.lan (192.168.254.200) is up.
Host bar.lan (192.168.254.207) is up (0.00013s latency).
MAC Address: 00:0C:29:2D:94:A0 (VMware)
Nmap done: 256 IP addresses (4 hosts up) scanned in 3.41 seconds

Chỉnh sửa:

Một tập lệnh sed để lọc đầu ra thành IP -> MAC - đặt tập tin này vào một tập tin.

/^Host.*latency.*/{
    $!N
    /MAC Address/{
        s/.*(\(.*\)) .*MAC Address: \(.*\) .*/\1 -> \2/
    }
}  
/[Nn]map/d
s/^Host .*is up/& but MAC Address cannot be found/

và sử dụng nó như thế này

nmap -sP 192.168.254.0/20 | sed -f sedscript
192.168.254.189 -> 00:0C:29:5B:A5:E0
192.168.254.196 -> 00:0C:29:2E:78:F1
Host foo.lan (192.168.254.200) is up but MAC Address cannot be found.
192.168.254.207 -> 00:0C:29:2D:94:A0

vâng, đây là những gì tôi đang tìm kiếm, tôi cũng đọc các tin nhắn khác, đây không phải là chuyển đổi của Cisco, cảm ơn tất cả các tin nhắn như thế nào.
Người dùng đã đăng ký

1
Tôi đã thấy rằng cách duy nhất để có được các địa chỉ mac hiển thị là chạy nmap với quyền root. Ngoài ra, có vẻ như các sedscript không còn hoạt động. [Văn bản gần địa chỉ IP đã thay đổi.
monksy

Báo cáo quét Nmap cho Máy chủ 192.168.1.147 đã hết (độ trễ 0,00045 giây). Địa chỉ MAC: XX: XX: XX: XX: XX: XX
monksy

16

Sử dụng nmap. Quan trọng để chạy nó như root để bạn có được địa chỉ MAC. Thí dụ:

sudo nmap -sP 192.168.1.0/24 

Sẽ quét 192.168.1.1 - 192.168.1.255. Tra cứu ký hiệu CIDR trên wiki nếu bạn không quen thuộc với ký hiệu mạng con này.

Bạn sẽ có thể nhận được nmap từ các bản phát hành của bất kỳ bản phân phối Linux gần đây nào, vd

sudo apt-get install nmap

hoặc là

sudo yum install nmap

Một đầu ra mẫu từ mạng của tôi:

Host 192.168.1.1 is up (0.0069s latency).
MAC Address: 00:0D:54:9B:D8:F4 (3Com)
Host 192.168.1.78 is up (0.0068s latency).
MAC Address: 00:0C:29:BC:3D:1C (VMware)
Host 192.168.1.91 is up (0.0038s latency).
MAC Address: 00:0C:29:8A:F4:A3 (VMware)
Host 192.168.1.92 is up (0.0039s latency).
MAC Address: 00:0C:29:65:60:5F (VMware)
Host 192.168.1.158 is up (0.033s latency).
MAC Address: 00:0C:29:82:24:EA (VMware)
Host 192.168.1.186 is up (0.0024s latency).
MAC Address: 00:0C:29:3E:26:1F (VMware)
Host 192.168.1.190 is up (0.0066s latency).

có phương pháp của bạn là cách khá đơn giản.
Người dùng đã đăng ký

7

Miễn là bạn chạy lệnh này từ một máy chủ trong cùng phân khúc mạng, nmapsẽ báo cáo tất cả địa chỉ MAC cho mỗi máy chủ được phát hiện.

Ví dụ:

sudo nmap 192.168.1.0/24 -sP

Starting Nmap 4.76 ( http://nmap.org ) at 2011-03-09 06:29 EST

Host old.net (192.168.1.1) appears to be up.
MAC Address: 00:18:39:C5:A1:DC (Cisco-Linksys)

Đối với các địa chỉ MAC, tôi cần phải root trên hộp Ubuntu của mình. Ngoài ra, một phương pháp đơn giản cho một máy chủ duy nhất là ping nó và xem bảng arp arp -anếu bạn muốn chỉ sử dụng các lệnh thường có trong cài đặt ban đầu của một bản phân phối:

arp -a | grep -v incomplete
foo.net (192.168.1.145) at 00:0d:4b:6a:2c:cb [ether] on eth0

7

Hãy thử lệnh này:

arp-scan --interface=eth0 192.168.1.0/24

Tôi biết đây là một câu hỏi thực sự cũ. Tuy nhiên, nmap không cho tôi bất kỳ địa chỉ MAC nào. quét arp đã làm. Cảm ơn.
MikeP

5

Tùy thuộc vào cấu trúc liên kết mạng LAN của bạn, ảnh tốt nhất của bạn có thể là hiển thị bảng địa chỉ MAC trên các công tắc của bạn.

Vì vậy, ví dụ, nếu cơ sở hạ tầng chuyển đổi của bạn là Cisco, bạn có thể thử

sh mac address-table

trên mọi công tắc.

Nếu bạn có nhiều công tắc, bạn có thể tự động hóa tác vụ này thông qua việc sử dụng SNMP .

Một tùy chọn khác và (một lần nữa) tùy thuộc vào cấu trúc liên kết và loại thiết bị mạng của bạn, bạn cũng có thể thử lấy địa chỉ mac của thiết bị hiển thị bảng arp trên bộ định tuyến của mình.

Với một trong hai phương pháp này, bạn cũng sẽ có được danh sách địa chỉ mac của bất kỳ thiết bị nào được kết nối với cấu trúc mạng của bạn: PC, máy in, điểm truy cập, v.v. Trong trường hợp đầu tiên, ngay cả các thiết bị không có địa chỉ IP. Điều này có thể hoặc không muốn bạn muốn, nhưng nó có thể đáng để thử.



1

Vì bạn đã đề cập về ssh vào các máy trong mạng của mình, bạn cũng có thể sử dụng đoạn ngắn này:

nmap -p 22 10.100.10.0/24 >/dev/null ; arp -a

0

Bạn có thể sử dụng một chương trình có tên SIW, nó miễn phí và quét mạng không yêu cầu quyền hoặc đối số.

URL: http://www.gtopala.com/

Có sẵn trong .exe, hoặc cài đặt đầy đủ.


.exe? Thẻ ghi "Linux-Netowrking"
d -_- b
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.