IRIXでネットワークカードのMACアドレスを見つけるにはどうすればよいですか?それを表示して出力を解析するものにシェルアウトしたくありません。
私はCをコーディングしています。
ルートアクセスを必要とするメソッドは許容されます。
#include <net/raw.h>
#include <net/if.h>
#include <net/soioctl.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
...
struct ifreq ifdat;
int s;
s = socket (PF_RAW, SOCK_RAW, RAWPROTO_SNOOP);
strcpy (ifdat.ifr_name, "en0");
ioctl (s, SIOCGIFADDR, &ifdat);
...
少しクリーンアップすると、ifdatにMACアドレスが含まれているはずです。
プログラムについてはわかりませんが、試してみることが/etc/nvram eaddr
できますexec()
。
一部のプラットフォーム(Linuxなど)ioctl()
では、MACアドレスを取得できます。ioctl()
プラットフォームに依存するため、IRIXを確認する必要があります。