📄 getmac.c
字号:
#include <stdio.h> #include <sys/types.h> #include <sys/param.h> #include <sys/ioctl.h> #include <sys/socket.h> #include <net/if.h> #include <netinet/in.h> #include <net/if_arp.h> #include <arpa/inet.h> #include <string.h> // #include "SysInfo.h" #define MAXINTERFACES 16 int GetNicSerialNumber(char *szSerial, int length){ register int fd, intrface, index,retn = 0; struct ifreq buf[MAXINTERFACES]; struct arpreq arp; struct ifconf ifc; if(length <= 12) return -1; /* Start collect NIC Serials (MAC Address) */ sprintf((char *)szSerial,"%s:","NICSerial"); if ((fd = socket (AF_INET, SOCK_DGRAM, 0)) >= 0){ ifc.ifc_len = sizeof buf; ifc.ifc_buf = (caddr_t) buf; if (!ioctl (fd, SIOCGIFCONF, (char *) &ifc)){ intrface = ifc.ifc_len / sizeof (struct ifreq); for(index=0;index<intrface;index++){ if (!(ioctl (fd, SIOCGIFHWADDR, (char *) &buf[index]))){ sprintf((char *)szSerial, "%02X%02X%02X%02X%02X%02X",(unsigned char)buf[index].ifr_hwaddr.sa_data[0], (unsigned char)buf[index].ifr_hwaddr.sa_data[1], (unsigned char)buf[index].ifr_hwaddr.sa_data[2], (unsigned char)buf[index].ifr_hwaddr.sa_data[3], (unsigned char)buf[index].ifr_hwaddr.sa_data[4], (unsigned char)buf[index].ifr_hwaddr.sa_data[5]); szSerial+=12; } else{ fprintf(stderr, "Get lana state failure\n"); } } } else{ fprintf(stderr, "Get lana state failure\n"); } } else{ fprintf(stderr, "Socket error!\n" ); } /* Start collect harddriver Serial */ return 0; } int GetMAC(char * NIC,int len){ int ret = GetNicSerialNumber(NIC,len);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -