C++获取本机MAC地址

来源:互联网 发布:方舟生存进化优化 编辑:程序博客网 时间:2024/06/11 02:56
int getMac(char* mac){int sockfd;struct ifreq tmp;char macAddr[30];sockfd=socket(AF_INET,SOCK_STREAM,0);if(sockfd<0){cout<<"create socket fail"<<endl;return -1;}memset(&tmp,0,sizeof(struct ifreq));strncpy(tmp.ifr_name,"eth0",sizeof(tmp.ifr_name)-1);if((ioctl(sockfd,SIOCGIFHWADDR,&tmp))<0){cout<<"mac ioctl error"<<endl;return -1;}sprintf(macAddr,"%02x%02x%02x%02x%02x%02x",(unsigned char)tmp.ifr_hwaddr.sa_data[0],(unsigned char)tmp.ifr_hwaddr.sa_data[1],(unsigned char)tmp.ifr_hwaddr.sa_data[2],(unsigned char)tmp.ifr_hwaddr.sa_data[3],(unsigned char)tmp.ifr_hwaddr.sa_data[4],(unsigned char)tmp.ifr_hwaddr.sa_data[5]   );close(sockfd);memcpy(mac,macAddr,strlen(macAddr));return 0;}


0 0
原创粉丝点击