正文

VC获取本机MAC地址2010-05-14 21:37:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/lym51/51133.html

分享到:

#include <windows.h>#include <iostream>#include <stdio.h>#include "Iphlpapi.h"#pragma comment(lib,"Iphlpapi")#pragma comment(lib,"WS2_32")using namespace std;u_char g_ucLocalMac[6];DWORD  g_dwGatewayIP;DWORD  g_dwLocalIP;DWORD  g_dwMask;BOOL GetGlobalData(){ ZeroMemory(g_ucLocalMac,6); PIP_ADAPTER_INFO pAdapterInfo=NULL; ULONG ulLen=0; //为适配器结构申请内存 ::GetAdaptersInfo(pAdapterInfo,&ulLen); pAdapterInfo=(PIP_ADAPTER_INFO)::GlobalAlloc(GPTR,ulLen); //获取本地适配器结构信息 if(::GetAdaptersInfo(pAdapterInfo,&ulLen) ==  ERROR_SUCCESS) { if(pAdapterInfo != NULL) { memcpy(g_ucLocalMac, pAdapterInfo->Address, 6); g_dwGatewayIP = ::inet_addr(pAdapterInfo->GatewayList.IpAddress.String); g_dwLocalIP = ::inet_addr(pAdapterInfo->IpAddressList.IpAddress.String); g_dwMask = ::inet_addr(pAdapterInfo->IpAddressList.IpMask.String); } } cout<<"--------------输出本机IP地址----------"<<endl<<endl; in_addr in; in.S_un.S_addr=g_dwLocalIP; cout<<"  IP地址: "<<inet_ntoa(in)<<endl; in.S_un.S_addr=g_dwMask; cout<<"子网掩码:"<<inet_ntoa(in)<<endl; in.S_un.S_addr=g_dwGatewayIP; cout<<"  网关号:"<<inet_ntoa(in)<<endl;/* u_char *p = g_ucLocalMac; printf("MAC地址 : %02X-%02X-%02X-%02X-%02X-%02X \n", p[0], p[1], p[2], p[3], p[4], p[5]);*/ u_char *p = g_ucLocalMac; cout<<"MAC地址:"<<hex <<setw(2)<< *(BYTE*)&p[0] <<'-'<<*(BYTE*)&p[1]<<'-'<<*(BYTE*)&p[2]<<'-'<<*(BYTE*)&p[3]<<'-'<<*(BYTE*)&p[4]<<'-'<<*(BYTE*)&p[5]<<endl; return TRUE;}

阅读(6761) | 评论(3)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册