获取mac地址的源码

来源:互联网 发布:c语言char怎么用 编辑:程序博客网 时间:2024/06/06 05:02

  PIP_ADAPTER_INFO pAdapterInfo;
 PIP_ADAPTER_INFO pAdapter=NULL;
 DWORD dwRetVal=0;
 CString str;
 pAdapterInfo=(IP_ADAPTER_INFO*)malloc(sizeof(IP_ADAPTER_INFO));
 ULONG ulOutBufLen=sizeof(IP_ADAPTER_INFO);

dwRetVal=GetAdaptersInfo(pAdapterInfo,&ulOutBufLen);

if(dwRetVal==ERROR_BUFFER_OVERFLOW)
 {
  free(pAdapterInfo);
  pAdapterInfo = (IP_ADAPTER_INFO *) malloc (ulOutBufLen);
  str+="有多个网卡";
  str+='/r';
  str+='/n';
 }

 if((dwRetVal=GetAdaptersInfo(pAdapterInfo,&ulOutBufLen))==NO_ERROR)
 {
  pAdapter=pAdapterInfo;
  while(pAdapter)
  {
   str="------------------------------------------------------------";
   str+='/r';
   str+='/n';
   str+="AdapterName:";
   str+=pAdapter->AdapterName;
   str+='/r';
   str+='/n';
   str+="AdapterDesc:";
   str+=pAdapter->Description;
   str+='/r';
   str+='/n';
   str+="AdapterAddr:";
   for(UINT i=0;i<pAdapter->AddressLength;i++)
   {
    char temp[10];
    itoa(pAdapter->Address[i],temp,16);
    str+=temp;
    if(i<pAdapter->AddressLength-1)
    {
     str+=(i==pAdapter->AddressLength-1?'n':'-');
    }
   }
   str+='/r';
   str+='/n';
   str+="AdapterType:";
   char temp[10];
   itoa(pAdapter->Type,temp,10);
   str+=temp;
   str+='/r';
   str+='/n';
   str+="IPAddress:";

   str+=pAdapter->IpAddressList.IpAddress.String;
   str+='/r';
   str+='/n';
   str+="IPMask:";
   str+=pAdapter->IpAddressList.IpMask.String;
   pAdapter=pAdapter->Next;
  }
 }
 ed2.SetWindowText(str);

 

说明:这段代码作为一个独立的函数封装,其中ed2是一个文本框,负责将取到的内容显示

 

 

 

 

 

 

 

 

 

 

typedef struct _IP_ADAPTER_INFO {
struct _IP_ADAPTER_INFO* Next;
DWORD ComboIndex;
char AdapterName[MAX_ADAPTER_NAME_LENGTH + 4];
char Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4];
UINT AddressLength;
BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH];
DWORD Index;
UINT Type;
UINT DhcpEnabled;
PIP_ADDR_STRING CurrentIpAddress;
IP_ADDR_STRING IpAddressList;
IP_ADDR_STRING GatewayList;
IP_ADDR_STRING DhcpServer;
BOOL HaveWins;
IP_ADDR_STRING PrimaryWinsServer;
IP_ADDR_STRING SecondaryWinsServer;
time_t LeaseObtained;
time_t LeaseExpires;} IP_ADAPTER_INFO,
*PIP_ADAPTER_INFO;
原创粉丝点击