В настоящее время все решения, упомянутые для получения MAC-адреса, всегда используют eth0.
Но что, если вместо eth0 мои интерфейсы начинаются с eth1. Также в OS X имена интерфейсов различны.
Также может присутствовать интерфейс eth0, но он не используется. то есть неактивно, он не имеет IP.
Итак, я могу получить MAC-адрес для первого доступного интерфейса, который является активным (т.е. имеет адрес inet, я даже не хочу иметь inet6).
Например,
eth0 Link encap:Ethernet HWaddr <some addr>
inet6 addr: <some addr> Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:123
RX packets:123 errors:123 dropped:123 overruns:123 frame:123
TX packets:123 errors:123 dropped:123 overruns:123 carrier:123
collisions:123 txqueuelen:123
RX bytes:123 (123 MB) TX bytes:123 (123 KB)
Interrupt:123 Memory:00000000-00000000
eth1 Link encap:Ethernet HWaddr <some addr>
inet addr:<some addr> Bcast:<some addr> Mask:<some addr>
inet6 addr: <some addr> Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:123 Metric:123
RX packets:123 errors:123 dropped:123 overruns:123 frame:123
TX packets:123 errors:123 dropped:123 overruns:123 carrier:123
collisions:123 txqueuelen:123
RX bytes:123 (123 MB) TX bytes:123 (123 KB)
Interrupt:123 Memory:00000000-00000000
ПРИМЕЧАНИЕ. Я изменил значения вывода.
Итак, в этом случае я хочу HWaddr для eth1, а не eth0. Как его найти? Также он должен работать на всех вариантах Linux.