⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getmac.c

📁 Python的扩展
💻 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 + -