2010-04-21 34 views
6

Trên Solaris, có lệnh mà tôi có thể chạy để lấy địa chỉ MAC của thẻ ethernet mà không chạy "/ sbin/ifconfig -a" không như là người chủ. Chạy/sbin/ifconfig -a với tư cách là người dùng không phải root, bỏ qua địa chỉ MAC - hãy tìm hình!Trên solaris, có lệnh để lấy địa chỉ MAC Card Ethernet mà không bị root

Cảm ơn,

Paul

+0

Bạn có thể muốn [Lỗi máy chủ] (http://serverfault.com/) –

Trả lời

10

Thử "arp -a", và tìm kiếm hostname của riêng bạn. (Điều này làm việc cho tôi trên máy Solaris 9 Tôi đã thử nó, nhưng mileage của bạn có thể thay đổi.)

+0

Cảm ơn vì điều đó - nó hoạt động tốt đẹp – ppower66

+1

Hoặc "arp $ (tên máy chủ) | cut -d '' -f4". –

+1

Không hiển thị các thẻ chưa được định cấu hình – Envite

13

/usr/bin/-pn netstat | grep SP

+1

Không hiển thị các thẻ chưa được định cấu hình – Envite

5

Tôi biết đây là một câu hỏi cũ, nhưng một tùy chọn khác là:

/usr/sbin/prtpicl -c network -v 

trường :local-mac-address sẽ cung cấp cho bạn những gì bạn cần. Bạn cũng sẽ có thể kéo MAC cho các giao diện bị vô hiệu hóa.

Bạn có thể xác định cổng theo các giá trị :instance:driver-name. Tôi nghĩ rằng điều này chỉ hoạt động trên nền tảng SPARC, và không phải là x86 Solaris, nhưng không chắc chắn.

+0

Thẻ này hiển thị các thẻ chưa được định cấu hình nhưng không có tên thẻ. Tuy nhiên, chúng có thể được trích xuất từ: instance và: driver-name – Envite

+0

Điều này dường như không hoạt động trên bản cài đặt Solaris 11 x86 của tôi - tôi không nhận được địa chỉ MAC nào cả cho dù đối số nào tôi chuyển tới 'prtpicl'. –

0

Hãy thử "dladm" lệnh với subcommand "show-Phys" với tùy chọn -m để xem danh sách các địa chỉ MAC:

$ dladm show-phys -m 
0
dladm show-linkprop -p mac-address 

documented, definitive Solaris 11 answer (tính đến tháng 9 năm 2017):

Kiểm tra địa chỉ MAC của tất cả các giao diện trên hệ thống.

...

# dladm show-linkprop -p mac-address 
LINK PROPERTY  PERM VALUE    DEFAULT   POSSIBLE 
net0 mac-address rw 8:0:20:0:0:1  8:0:20:0:0:1  -- 
net1 mac-address rw 8:0:20:0:0:1  8:0:20:0:0:1  -- 
net3 mac-address rw 0:14:4f:45:c:2d 0:14:4f:45:c:2d -- 

Không có câu trả lời khác được đảm bảo để trả về địa chỉ MAC thực tế của tất cả các NIC trên Solaris 11.

Ngày cài đặt Solaris 11 của tôi, prtpicl doesn' t trả về bất kỳ địa chỉ MAC nào dù tôi có đưa ra lý lẽ gì.

arp -an thậm chí không hiển thị tất cả các NIC vật lý cấu hình:

Net to Media Table: IPv4 
Device IP Address    Mask  Flags  Phys Addr 
------ -------------------- --------------- -------- --------------- 
net2 224.0.0.251   255.255.255.255 S  01:00:5e:00:00:fb 
aggr0 224.0.0.251   255.255.255.255 S  01:00:5e:00:00:fb 
aggr0 192.168.1.92   255.255.255.255   60:6c:66:4f:c5:c7 
aggr0 192.168.1.43   255.255.255.255   b8:88:e3:f5:4c:0b 
aggr0 192.168.1.45   255.255.255.255   02:08:20:93:0b:d3 
net2 192.168.1.35   255.255.255.255 SPLA  00:0e:0c:72:9f:6b 
net2 192.168.1.1   255.255.255.255   70:f1:96:19:5b:88 
aggr0 192.168.1.5   255.255.255.255 SPLA  00:14:5e:1b:14:0a 
aggr0 192.168.1.4   255.255.255.255   00:1d:09:07:5a:93 
aggr0 192.168.1.6   255.255.255.255   00:14:5e:2a:75:36 
aggr0 192.168.1.25   255.255.255.255   00:11:25:90:d0:07 
aggr0 192.168.1.251  255.255.255.255   00:c0:b7:d2:00:60 
aggr0 192.168.1.244  255.255.255.255   00:10:75:07:55:94 
net2 192.168.1.244  255.255.255.255   00:10:75:07:55:94 
net2 224.0.0.22   255.255.255.255 S  01:00:5e:00:00:16 
aggr0 224.0.0.22   255.255.255.255 S  01:00:5e:00:00:16 
aggr0 192.168.1.151  255.255.255.255   4c:66:41:af:e8:fc 
net2 192.168.1.151  255.255.255.255   4c:66:41:af:e8:fc 

netstat -pn tạo ra kết quả giống hệt nhau.

aggr0 là một liên kết tổng hợp của net0net1, mà thể chất là /dev/bge0/dev/bge1. Vì vậy, những gì hiện dladm show-phys -m hiển thị?

dladm show-phys -m hiển thị địa chỉ MAC của aggr0 cho cả net0net1, không phải là địa chỉ MAC của NIC vật lý cơ bản:

LINK    SLOT  ADDRESS   INUSE CLIENT 
net1    primary 0:14:5e:1b:14:a yes aggr0-net1 
vboxnet0   primary 8:0:27:4e:ea:4d no -- 
net0    primary 0:14:5e:1b:14:a yes aggr0-net0 
net2    primary 0:e:c:72:9f:6b  yes iprb0 

Vâng, ít nhất điều đó cho chúng tôi biết rằng aggr0 là một liên kết tổng hợp sử dụng net0net1, nhưng địa chỉ MAC của cả hai net0net1 là địa chỉ MAC của aggr0, không phải địa chỉ MAC vật lý thực tế.

Nhưng dladm show-linkprop -p mac-address lãm

LINK  PROPERTY  PERM VALUE  EFFECTIVE DEFAULT POSSIBLE 
net1  mac-address  rw 0:14:5e:1b:14:a 0:14:5e:1b:14:a 0:14:5e:1b:14:b -- 
vboxnet0 mac-address  rw 8:0:27:4e:ea:4d 8:0:27:4e:ea:4d 8:0:27:4e:ea:4d -- 
net0  mac-address  rw 0:14:5e:1b:14:a 0:14:5e:1b:14:a 0:14:5e:1b:14:a -- 
net2  mac-address  rw 0:e:c:72:9f:6b 0:e:c:72:9f:6b 0:e:c:72:9f:6b -- 
estub0 mac-address  ? ?   ?   ?   ? 
aggr0 mac-address  rw 0:14:5e:1b:14:a 0:14:5e:1b:14:a 0:14:5e:1b:14:a -- 
vnic0 mac-address  rw 2:8:20:da:88:79 2:8:20:da:88:79 2:8:20:da:88:79 -- 
vnic1 mac-address  rw 2:8:20:31:af:de 2:8:20:31:af:de 2:8:20:31:af:de -- 
vnic2 mac-address  rw 2:8:20:fb:4:e7 2:8:20:fb:4:e7 2:8:20:fb:4:e7 -- 
vboxbridge0 mac-address ? ?   ?   ?   ? 
samba/net0 mac-address rw 2:8:20:93:b:d3 2:8:20:93:b:d3 2:8:20:93:b:d3 -- 

Sử dụng awksort để chỉ hiển thị địa chỉ MAC mặc định của mỗi NIC:

dladm show-linkprop -p mac-address | grep -v LINK | awk '{ print $1 " " $6 }' | sort 

sản xuất

aggr0 0:14:5e:1b:14:a 
estub0 ? 
net0 0:14:5e:1b:14:a 
net1 0:14:5e:1b:14:b 
net2 0:e:c:72:9f:6b 
samba/net0 2:8:20:93:b:d3 
vboxbridge0 ? 
vboxnet0 8:0:27:4e:ea:4d 
vnic0 2:8:20:da:88:79 
vnic1 2:8:20:31:af:de 
vnic2 2:8:20:fb:4:e7 

Lưu ý rằng địa chỉ MAC mặc định trong số aggr0 là địa chỉ MAC thực tế của net0//dev/bge0, nhưng đó là chỉ vì khi tôi tạo liên kết tổng hợp, tôi không bận tâm gán một địa chỉ MAC khác và để mặc định, per the create-aggr section of the dladm man page được chọn từ một trong các giao diện là một phần của tập hợp.

Các vấn đề liên quan