linux获取网卡名称

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

int main()
{
int i=0;
int sockfd;
struct ifconf ifc;
unsigned char buf[512];
struct ifreq *ifr;

//初始化ifconf
ifc.ifc_len = 512;
ifc.ifc_buf = buf;

if((sockfd = socket(AF_INET, SOCK_DGRAM, 0))<0)
{
	perror("socket");
	exit(1);
}  
ioctl(sockfd, SIOCGIFCONF, &ifc);    //获取所有接口信息

//接下来获取逐个网卡的名称
ifr = (struct ifreq*)buf;  
for(i=(ifc.ifc_len/sizeof(struct ifreq)); i>0; i--)
{
	printf("name = [%s]\n", ifr->ifr_name);
	ifr++;

}

return 0;
}

你可能感兴趣的:(Linux,C语言)