如何在 IRIX 上找到网卡的 MAC 地址?我宁愿不掏出显示它并解析输出的东西。
我正在编写 C 代码。
需要 root 访问权限的方法是可以接受的。
#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 地址。您需要检查 IRIX,因为ioctl()
它依赖于平台。