Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > считать mac адрес


Автор: slater 19.8.2010, 09:11
всем день добрый, подскажите как на Си считать мак адрес, есть ли какое то API?

Автор: MAKCim 19.8.2010, 10:41
netlink
ioctl

Автор: slater 19.8.2010, 10:56
спасибо, а примерчик не покажите если возможно

Автор: MAKCim 21.8.2010, 12:46
Код

#include <sys/ioctl.h>
#include <net/if.h>
#include <net/ethernet.h>

#include <string.h>
#include <stdio.h>

int main()
{
    int s;
    int i;
    const char *prefix;
    struct ifreq ifreq;
    memset(&ifreq, 0, sizeof(ifreq));
    strcpy(ifreq.ifr_name, "eth0");
    if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0)
    {
        return -1;
    }
    if (ioctl(s, SIOCGIFHWADDR, &ifreq) < 0)
    {
        return -2;
    }
    prefix = "";
    for (i = 0; i < ETHER_ADDR_LEN; ++i)
    {
        printf("%s%02X", prefix, (unsigned int)(unsigned char)ifreq.ifr_hwaddr.sa_data[i]);
        prefix = ":";
    }
    return 0;
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)