多网卡存在情况下获取指定网卡的MAC地址
2017-05-04 22:02
309 查看
应用软件中经常有需要显示mac地址的功能,方便用户判断当前联网状态,如果是在多网卡存在(无线,有线等)下,网络会经常切换,获取到的MAC地址可能与预期不同,现给出指定网卡获取mac地址的方法。
如上。
void get_mac(Mac_Address &mac_address) { int fd = -1; struct ifreq buf; snprintf(mac_address,sizeof(mac_address),"00:00:00:00:00:00"); if((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { return; } //wlan0代表网卡的名字 strncpy(buf.ifr_ifrn.ifrn_name,"wlan0",sizeof(buf.ifr_ifrn.ifrn_name)-1); if((ioctl(fd, SIOCGIFHWADDR, &buf)) != -1) { snprintf(mac_address, sizeof(), "%02x:%02x:%02x:%02x:%02x:%02x", buf.ifr_hwaddr.sa_data[0],buf.ifr_hwaddr.sa_data[1], buf.ifr_hwaddr.sa_data[2], buf.ifr_hwaddr.sa_data[3], buf.ifr_hwaddr.sa_data[4]), buf.ifr_hwaddr.sa_data[5]) } close(fd); return; }
如上。
相关文章推荐
- delphi mac地址 网卡地址获取,如果有无线网卡连接情况,mac地址随机获取某个本地连接网卡地址,要都写进去判断
- Linux 下获取LAN中指定IP的网卡的MAC(物理地址)
- 获取指定网卡的MAC地址
- Linux 下获取LAN中指定IP的网卡的MAC(物理地址)
- Linux 下获取LAN中指定IP的网卡的MAC(物理地址)
- Windows在没有TCP/IP协议的情况下获取网卡MAC地址
- c#中获取cpu序列号,硬盘id,网卡mac地址
- 如何用ASP来获取网卡的MAC地址
- 网卡MAC地址相关信息大全-4 获取远程网卡MAC地址
- 获取cpu序列号,硬盘ID,网卡MAC地址
- 用C#获取硬盘序列号,CPU序列号,网卡MAC地址的源码
- ASP获取网卡物理地址(MAC)
- java简单的获取windows系统网卡mac地址
- java简单的获取windows系统网卡mac地址
- 获取网卡MAC地址
- C#获取cpu序列号,硬盘ID,网卡MAC地址
- 获取cpu序列号,硬盘ID,网卡MAC地址
- java简单的获取windows系统网卡mac地址
- 获取cpu序列号,硬盘ID,网卡MAC地址
- java简单的获取windows系统网卡mac地址