在Solaris上,是否有一个命令可以运行以获取以太网卡的MAC地址而无需以root身份运行“/ sbin / ifconfig -a”。以非root用户身份运行/ sbin / ifconfig -a会遗漏MAC地址 - 请参阅!
谢谢,
保
答案 0 :(得分:14)
答案 1 :(得分:10)
尝试"arp -a"
,然后查找自己的主机名。 (这在Solaris 9机器上对我有用,我试过它,但你的里程可能会有所不同。)
答案 2 :(得分:5)
我知道这是一个较旧的问题,但另一个选择是:
/usr/sbin/prtpicl -c network -v
:local-mac-address
字段会为您提供所需内容。您还可以为禁用的接口提取MAC。
您可以按:instance
和:driver-name
值标识端口。我认为这只适用于SPARC平台,而不适用于x86 Solaris,但不确定。
答案 3 :(得分:1)
使用子命令“show-phys”和-m选项尝试“dladm”命令以查看MAC地址列表:
$ dladm show-phys -m
答案 4 :(得分:0)
dladm show-linkprop -p mac-address
是documented, definitive Solaris 11 answer(截至2017年9月):
检查系统上所有接口的MAC地址。
...
# 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 --
其他答案都不能保证在Solaris 11上返回所有NIC的实际MAC地址。
在我的Solaris 11安装中,无论我提供什么参数,prtpicl
都不会返回任何MAC地址。
arp -an
甚至没有显示所有已配置的物理网卡:
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
会产生相同的结果。
aggr0
是net0
和net1
的汇总链接,实际上是/dev/bge0
和/dev/bge1
。那么dladm show-phys -m
显示了什么?
dladm show-phys -m
显示aggr0
和net0
的{{1}}的MAC地址,而不是基础物理网卡的MAC地址:
net1
嗯,至少这确实告诉我们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
是使用aggr0
和net0
的聚合链接,但是net1
和{{1}的MAC地址}是net0
的MAC地址,而不是实际的物理网卡MAC地址。
但net1
显示
aggr0
使用dladm show-linkprop -p mac-address
和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 --
仅显示每个NIC的默认MAC地址:
awk
产生
sort
请注意,dladm show-linkprop -p mac-address | grep -v LINK | awk '{ print $1 " " $6 }' | sort
的默认MAC地址是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
/ aggr0
的实际MAC地址,但这仅仅是因为我创建聚合链接时我没有费心去分配一个不同的MAC地址并保留默认值,per the create-aggr
section of the dladm
man page从作为聚合一部分的接口中选择。{/ p>