получить физический носитель типа адаптера Ethernet с помощью C ++ на Linux - PullRequest
1 голос
/ 02 мая 2011

Я использую этот код для получения некоторой информации об адаптерах Ethernet.

for(i = 0; i < nInterfaces; i++)
    {
        struct ifreq *item = &ifr[i];

        if(ioctl(sck, SIOCGIFFLAGS, &ifr[i]) >= 0)
        {
            if (!(ifr[i].ifr_flags & IFF_LOOPBACK))
            {
                printf("Name : %s\n", item->ifr_name);
                printf("Media : %s\n", (ifr->ifr_flags)&IFF_UP ? "Up" : "Down");
                printf("Bandwidth : %d\n", item->ifr_bandwidth);
            }
        }
    }

Как определить тип носителя adatper?Например, беспроводной, Bluetooth, Ethernet (802.3) и т. Д .?

Прашант

1 Ответ

0 голосов
/ 02 мая 2011

Если мы считаем, что этот сайт: http://linux.about.com/library/cmd/blcmdl7_netdevice.htm,, то в члене ifr_flags есть значение IFF_PORTSEL, которое "Может выбирать тип мультимедиа через ifmap.".

...