実行マシンのMACアドレスを取得する必要があってやり方を探したのですが,意外と探すのに時間がかかりました。結果をここにまとめておきます。 やりたいこと 実行マシンが持つネットワークカードの名称とMACアドレスを列挙したい。 LinuxとMac OS Xの両方で動かしたい。 ifconfigなど外部コマンドを呼び出さずにAPIで実現したい。 Linux版 ioctl(_, SIOCGIFCONF, _)でネットワーク・インターフェース情報の一覧を取得してから,個々のインターフェースに対して,ioctl (_, SIOCGIFHWADDR, _)でMACアドレスを取得します。 #include <stdio.h> #include <string.h> #include <sys/ioctl.h> #include <sys/socket.h> #include <netinet/in.h>