web-dev-qa-db-ja.com

eth0のMACを取得する最良の方法?

LinuxでNICのMACアドレスを取得するより効率的な方法はありますか?

これは機能します:

ip link show dev eth0 | awk ' /link\/ether/ { print $2 }'

しかし、それは次のようなものを介して見つけることができます:

cat /sys/net/something
20
brodul

/sys/class/net/eth0/address(より正確には/sys/devices/pciXXXX:XX/XXXX/net/eth0/addressここで、XXXはPCIバスIDですが、これはシステムによって異なります)。

(ちなみに、私はこれをfind /sys -name eth0そして、識別されたディレクトリ内のファイルを確認します。)

27
Zanchey

ifconfigからも入手できます。

kce@thinkpad:~$ /sbin/ifconfig eth0 |grep HWaddr
eth0      Link encap:Ethernet  HWaddr 00:1e:37:cc:ce:cc  

または、MACアドレスのみが必要な場合:

kce@thinkpad:~$ /sbin/ifconfig eth0 |awk '/HWaddr/{print $5}'
00:1e:37:cc:ce:cc
4
user62491

moreutilsパッケージをインストールできる場合は、ifdataツールがあります。説明は言う:

ifdata:ifconfig出力を解析せずにネットワークインターフェイス情報を取得する

次に例を示します。

me@box:~$ ifdata -ph eth0
00:21:86:61:35:44
3
Michał Šrajer