Как найти MAC-адрес программно в IRIX?

Как мне найти MAC-адрес сетевой карты в IRIX? Я бы предпочел не раскошелиться на что-то, что отображает это и проанализировать вывод.

Я кодирую C.

Методы, которые требуют root-доступа, являются приемлемыми.

3 ответа

Решение
#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() зависит от платформы.

Другие вопросы по тегам