7

在 Solaris 上,我可以运行一个命令来获取以太网卡的 MAC 地址,而无需以 root 身份运行“/sbin/ifconfig -a”。以非 root 用户身份运行 /sbin/ifconfig -a 会忽略 MAC 地址 - 去看看!

谢谢,

保罗

4

5 回答 5

16

/usr/bin/netstat -pn |grep SP

于 2010-07-26T10:25:26.117 回答
11

尝试"arp -a",并查找您自己的主机名。(这适用于我在我尝试过的 Solaris 9 机器上,但你的里程可能会有所不同。)

于 2010-04-21T02:10:53.833 回答
6

我知道这是一个较老的问题,但另一种选择是:

/usr/sbin/prtpicl -c network -v

:local-mac-address领域将为您提供所需的东西。您还可以为禁用的接口提取 MAC。

:instance您可以通过和:driver-name值来识别端口。我认为这仅适用于 SPARC 平台,不适用于 x86 Solaris,但不确定。

于 2012-11-14T21:58:05.583 回答
2

尝试使用带有 -m 选项的子命令“show-phys”的“dladm”命令来查看 MAC 地址列表:

$ dladm show-phys -m
于 2017-09-20T01:14:40.910 回答
0
dladm show-linkprop -p mac-address

记录在案的、明确的 Solaris 11 答案(截至 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是 和 的聚合链接net0net1物理上是/dev/bge0/dev/bge1。那么dladm show-phys -m显示什么呢?

dladm show-phys -m显示 和 的 MAC 地址,aggr0net0不是net1底层物理 NIC 的 MAC 地址:

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

好吧,至少这确实告诉我们这是一个使用andaggr0的聚合链接,但是两者的 MAC 地址是的 MAC 地址,而不是实际的物理 NIC MAC 地址。net0net1net0net1aggr0

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 -- 

使用awkandsort仅显示每个 NIC 的默认 MAC 地址:

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

生产

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

请注意,默认 MAC 地址是/aggr0的实际 MAC 地址,但这只是因为当我创建聚合链接时,我没有费心分配不同的 MAC 地址并将其保留为默认值,根据手册页的部分是从属于聚合的接口之一中选择的。net0/dev/bge0create-aggrdladm

于 2017-09-20T13:47:23.833 回答