Как найти MAC-адрес сетевой карты в IRIX? Я бы предпочел не использовать что-то, что отображает его, и проанализировать вывод.Как найти MAC-адрес программно в IRIX?
Я кодирования C.
методы, которые требуют корневого доступа, являются приемлемыми.
Как найти MAC-адрес сетевой карты в IRIX? Я бы предпочел не использовать что-то, что отображает его, и проанализировать вывод.Как найти MAC-адрес программно в IRIX?
Я кодирования 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()
что.
Я бы предпочел не раскошелиться, но, по крайней мере, он работает. Благодарю. Означает ли это, что все сетевые карты имеют один и тот же MAC-адрес? – Thomas
На некоторых платформах (например, Linux) ioctl()
позволяет получить MAC-адрес. Вам нужно проверить IRIX, поскольку ioctl()
зависит от платформы.
Успех (ifdat.enaddr). Я здесь корону короля IRIX. Спасибо. – Thomas