在solaris上,是否有命令获取以太网卡MAC地址而不是root

时间:2010-04-21 02:04:33

标签: solaris sunos

在Solaris上,是否有一个命令可以运行以获取以太网卡的MAC地址而无需以root身份运行“/ sbin / ifconfig -a”。以非root用户身份运行/ sbin / ifconfig -a会遗漏MAC地址 - 请参阅!

谢谢,

5 个答案:

答案 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会产生相同的结果。

aggr0net0net1的汇总链接,实际上是/dev/bge0/dev/bge1。那么dladm show-phys -m显示了什么?

dladm show-phys -m显示aggr0net0的{​​{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 是使用aggr0net0的聚合链接,但是net1和{{1}的MAC地址}是net0的MAC地址,而不是实际的物理网卡MAC地址。

net1显示

aggr0

使用dladm show-linkprop -p mac-addressLINK 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>