Linux下获取网卡名称的3种方法 |
您所在的位置:网站首页 › Linux怎么看网卡名 › Linux下获取网卡名称的3种方法 |
在Linux中获取网卡名称的方法如下几种,1和2两种没办法在网卡未分配IP 地址时获取: 1.采用socket方式获取网卡列表 int EthManager::listInterface() { int fd; int interface_num = 0,i = 0; struct ifreq ifbuffer[10]; struct ifconf ifc; if((fd = socket(AF_INET,SOCK_DGRAM,IPPROTO_IP)) < 0){ goto error_close; } ifc.ifc_len = sizeof (ifbuffer); ifc.ifc_buf = (caddr_t)ifbuffer; if(!ioctl(fd,SIOCGIFCONF,(char*)&ifc)){ interface_num = ifc.ifc_len / sizeof(struct ifreq); nameList.clear(); while(i < interface_num){ //如果是本地回环地址,则不插入 if(!(strstr(ifbuffer[i].ifr_name,"lo"))){ nameList.insert(i,QString(ifbuffer[i].ifr_name)); } i++; } } ::close(fd) |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |