Как найти 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()
зависит от платформы.