#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/ioctl.h>#include <sys/socket.h>#include <netinet/in.h>#include <net/if.h>int main(int argc, char *argv[]){ FILE *fp; char buffer[256] = {0x0}; fp=popen("ls /sys/class/net/ | grep -v \"`ls /sys/devices/virtual/net/`\"", "r"); if (NULL == fp) { perror("popen failed"); return -1; } while(fgets(buffer,sizeof(buffer),fp) > 0) { if (buffer[strlen(buffer)-1] == '\n') buffer[strlen(buffer)-1] = '0円'; printf("=============\n"); printf("[%s]\n",buffer); printf("=============\n"); struct ifreq ifreq; int sock = 0; char mac[32] = ""; sock = socket(AF_INET,SOCK_STREAM,0); if(sock < 0) { perror("error sock"); continue; } strcpy(ifreq.ifr_name,buffer); if(ioctl(sock,SIOCGIFHWADDR,&ifreq) < 0) { perror("error ioctl"); continue; } int i = 0; for(i = 0; i < 6; i++){ sprintf(mac+3*i, "%02X:", (unsigned char)ifreq.ifr_hwaddr.sa_data[i]); } mac[strlen(mac) - 1] = 0; printf("MAC: %s\n", mac); } pclose(fp); return 0;}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。