?? 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 + -