获取本机MAC地址

  1. QString GetLocalMac()  
  2. {  
  3.     int sock_mac;  
  4.       
  5.     struct ifreq ifr_mac;  
  6.     char mac_addr[30];     
  7.       
  8.     sock_mac = socket( AF_INET, SOCK_STREAM, 0 );  
  9.     if( sock_mac == -1)  
  10.     {  
  11.         perror("create socket falise...mac/n");  
  12.         return "";  
  13.     }  
  14.       
  15.     memset(&ifr_mac,0,sizeof(ifr_mac));     
  16.     strncpy(ifr_mac.ifr_name, "eth0"sizeof(ifr_mac.ifr_name)-1);     
  17.   
  18.     if( (ioctl( sock_mac, SIOCGIFHWADDR, &ifr_mac)) < 0)  
  19.     {  
  20.         printf("mac ioctl error/n");  
  21.         return "";  
  22.     }  
  23.       
  24.     sprintf(mac_addr,"%02x%02x%02x%02x%02x%02x",  
  25.             (unsigned char)ifr_mac.ifr_hwaddr.sa_data[0],  
  26.             (unsigned char)ifr_mac.ifr_hwaddr.sa_data[1],  
  27.             (unsigned char)ifr_mac.ifr_hwaddr.sa_data[2],  
  28.             (unsigned char)ifr_mac.ifr_hwaddr.sa_data[3],  
  29.             (unsigned char)ifr_mac.ifr_hwaddr.sa_data[4],  
  30.             (unsigned char)ifr_mac.ifr_hwaddr.sa_data[5]);  
  31.   
  32.     printf("local mac:%s /n",mac_addr);      
  33.       
  34.     close( sock_mac );  
  35.     return QString( mac_addr );  
  36. }  
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值