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 HWaddr
nế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.
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 HWaddr
nế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.
Câu trả lời:
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
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).
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, nmap
sẽ 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 -a
nế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
Hãy thử lệnh này:
arp-scan --interface=eth0 192.168.1.0/24
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ử.
Có lẽ arp-scan cũng là một lựa chọn:
Xem ví dụ tại đây: Hướng dẫn sử dụng Arp-scan
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ố.
Có sẵn trong .exe, hoặc cài đặt đầy đủ.