На солярисе есть команда для получения MAC-адреса карты Ethernet без рута - PullRequest
7 голосов
/ 21 апреля 2010

В Solaris есть ли команда, которую я могу запустить, чтобы получить MAC-адрес карты Ethernet без запуска "/ sbin / ifconfig -a" от имени пользователя root. Запуск / sbin / ifconfig -a от имени пользователя без полномочий root пропускает MAC-адрес.

Спасибо

Пол

Ответы [ 5 ]

14 голосов
/ 26 июля 2010

/ usr / bin / netstat -pn | grep SP

10 голосов
/ 21 апреля 2010

Попробуйте "arp -a" и найдите свое собственное имя хоста. (Это работает для меня на машине с Solaris 9, на которой я пробовал, но ваш пробег может отличаться.)

5 голосов
/ 15 ноября 2012

Я знаю, что это старый вопрос, но другой вариант:

/usr/sbin/prtpicl -c network -v

поле :local-mac-address даст вам то, что вам нужно. Вы также сможете использовать MAC для отключенных интерфейсов.

Вы можете идентифицировать порт по значениям :instance и :driver-name. Я думаю, что это работает только на платформах SPARC, а не на x86 Solaris, но не уверен.

1 голос
/ 20 сентября 2017

Попробуйте команду «dladm» с подкомандой «show-phys» с параметром -m, чтобы увидеть список MAC-адресов:

$ dladm show-phys -m
0 голосов
/ 20 сентября 2017
dladm show-linkprop -p mac-address

является задокументированным, окончательным ответом Solaris 11 (по состоянию на сентябрь 2017 года):

Проверьте 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   --

Ни один из других ответов не может гарантировать фактический MAC-адрес всех сетевых карт в Solaris 11.

В моей установке 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 показывает MAC-адрес aggr0 для net0 и net1, а не 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

Ну, по крайней мере, это говорит нам о том, что aggr0 является агрегированным каналом, использующим net0 и net1, но MAC-адрес как net0, так и net1 является MAC-адресом aggr0, не фактический физический MAC-адрес сетевой карты.

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

Использование awk и sort для отображения только 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-адресом net0 / /dev/bge0, но это только потому, что когда я создал сводную ссылку, я не удосужился назначить другой MAC-адрес и оставил это значение по умолчанию, которое в разделе create-aggr справочной страницы dladm выбирается из одного из интерфейсов, которые являются частью агрегации.

...