在linux上使用C++获取物理介质类型的以太网适配器
问题描述:
我正在使用此代码获取有关以太网适配器的一些信息。在linux上使用C++获取物理介质类型的以太网适配器
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的媒体类型?例如无线,蓝牙,以太网(802.3)等?
PRASHANT
答
如果我们相信这个网站:http://linux.about.com/library/cmd/blcmdl7_netdevice.htm,再有就是所谓的IFF_PORTSEL成员ifr_flags的值是“能够选择通过ifmap媒体类型。”
你能指导我一点点来得到它吗? – Prashant 2011-05-02 07:39:27