#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;
}
Linux系统中使用C语言获取指定网口的MAC地址
最新推荐文章于 2024-09-22 14:42:14 发布