linux下获取所有网卡mac地址(C语言)
2013-05-13 16:56
525 查看
linux下获取所有网卡mac地址(C语言)
网卡包含lo,ethX系列
//文件getmac.c
编译:
gcc -g getmac.c
执行:
./a.out
结果:
interface num is 2
net device lo
HWaddr 00:00:00:00:00:00
net device eth0
HWaddr D4:4D:5E:54:83:3C
网卡包含lo,ethX系列
//文件getmac.c
#include <stdio.h> #include <sys/ioctl.h> #include <net/if.h> #include <string.h> void getmac(); int main() { getmac(); return 0; } void getmac() { #define MAXINTERFACES 16 int fd, interface; struct ifreq buf[MAXINTERFACES]; struct ifconf ifc; char mac[32] = {0}; if((fd = socket(AF_INET, SOCK_DGRAM, 0)) >= 0) { int i = 0; ifc.ifc_len = sizeof(buf); ifc.ifc_buf = (caddr_t)buf; if (!ioctl(fd, SIOCGIFCONF, (char *)&ifc)) { interface = ifc.ifc_len / sizeof(struct ifreq); printf("interface num is %d\n", interface); while (i < interface) { printf("net device %s\n", buf[i].ifr_name); if (!(ioctl(fd, SIOCGIFHWADDR, (char *)&buf[i]))) { sprintf(mac, "%02X:%02X:%02X:%02X:%02X:%02X", (unsigned char)buf[i].ifr_hwaddr.sa_data[0], (unsigned char)buf[i].ifr_hwaddr.sa_data[1], (unsigned char)buf[i].ifr_hwaddr.sa_data[2], (unsigned char)buf[i].ifr_hwaddr.sa_data[3], (unsigned char)buf[i].ifr_hwaddr.sa_data[4], (unsigned char)buf[i].ifr_hwaddr.sa_data[5]); printf("HWaddr %s\n", mac); } printf("\n"); i++; } } } }
编译:
gcc -g getmac.c
执行:
./a.out
结果:
interface num is 2
net device lo
HWaddr 00:00:00:00:00:00
net device eth0
HWaddr D4:4D:5E:54:83:3C
相关文章推荐
- 如何用C语言获取网卡的mac地址?(当然,你也可以用类似方法获取所有ip)
- Linux下C语言获取所有网卡MAC地址的代码
- linux 下获取所有网卡mac,name
- Linux下获取所有可用网卡信息
- linux下获取网卡IP地址、MAC地址、RX_BYTES、TX_BYTES
- C语言获取本地所有网卡的ip地址及MAC信息
- LINUX下QT与C语言通过网卡名获取网卡IP与MAC
- linux 下C实现获取网卡IP和MAC地址
- Linux下获取所有可用网卡信息
- Linux下C获取所有可用网卡信息
- linux 设置网络API --- 开/关网卡、设置/获取Mac地址
- Linux下C获取所有可用网卡信息
- 获取本机所有网卡的网卡名、网卡描述、网卡MAC地址、网卡IP、网卡类型等信息及网线是否插入状态
- Linux获取网卡MAC地址命令
- linux用C语言读取网卡MAC地址
- linux 获取eth0(指定网卡)网卡的IP地址(或MAC地址)
- Linux上获取所有网卡信息
- Linux下获取eth网卡MAC地址的代码
- Python获取本机所有网卡的MAC地址
- LINUX下获取网卡IP地址和MAC地址,子网掩码程序参考