#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-15 04:30:00 发布
本文提供了一个使用C语言实现的函数,用于获取指定网络接口的MAC地址。通过socket和ioctl系统调用,该函数能有效获取并返回MAC地址。
863

被折叠的 条评论
为什么被折叠?



