LinuxでNICのMACアドレスを取得するより効率的な方法はありますか?
これは機能します:
ip link show dev eth0 | awk ' /link\/ether/ { print $2 }'
しかし、それは次のようなものを介して見つけることができます:
cat /sys/net/something
/sys/class/net/eth0/address
(より正確には/sys/devices/pciXXXX:XX/XXXX/net/eth0/address
ここで、XXXはPCIバスIDですが、これはシステムによって異なります)。
(ちなみに、私はこれをfind /sys -name eth0
そして、識別されたディレクトリ内のファイルを確認します。)
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
moreutils
パッケージをインストールできる場合は、ifdata
ツールがあります。説明は言う:
ifdata:ifconfig出力を解析せずにネットワークインターフェイス情報を取得する
次に例を示します。
me@box:~$ ifdata -ph eth0
00:21:86:61:35:44