`
老竹枝
  • 浏览: 79298 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Linux系统中使用C语言获取指定网口的MAC地址

阅读更多
#define	MAC_ADDR_LEN	6

extern int getLocalMacAddr(const u_char *interfaceName,char *mac){
	int sockFd = 0;
	struct ifreq ifr;

	if(NULL == interfaceName){
		printf("Invalid argument");
		return -1;
	}
	if(NULL == mac){
		printf("Invalid argument");
		return -1;
	}
	
	strncpy(ifr.ifr_name, interfaceName, sizeof(ifr.ifr_name));
	if ((sockFd = socket(PF_INET, SOCK_STREAM, 0)) == -1){
		printf("open socket fail.");
		return -1;
	}

	if (ioctl(sockFd, SIOCGIFHWADDR, &ifr) == -1){
		printf("get mac address fail.");
		return -1;
	}

	memcpy(mac,(u_char *)ifr.ifr_hwaddr.sa_data,MAC_ADDR_LEN);
	

	return 0;

}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics