得到本机的MAC,IP, MASK地址
#include "InitSock.h"#include <stdio.h>
#include <iphlpapi.h>
#pragma comment(lib, "IPHLPAPI.lib")
u_char g_ucLocalMac;
DWORD g_dwGatewayIP;
DWORD g_dwLocalIP;
DWORD g_dwMask;
BOOL GetGlobalData()
{
PIP_ADAPTER_INFO pAdapterInfo = NULL;
ULONG ulSize = 0;
//为结构申请内存
::GetAdaptersInfo(pAdapterInfo, &ulSize);
pAdapterInfo = (PIP_ADAPTER_INFO)::GlobalAlloc(GPTR, ulSize);
if ( ERROR_SUCCESS== ::GetAdaptersInfo(pAdapterInfo, &ulSize))
{
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);
}
}
//in_addr表示IP的结构
in_addr in;
in.S_un.S_addr = g_dwLocalIP;
printf("IP Address:%-30s\n", ::inet_ntoa(in));
in.S_un.S_addr = g_dwGatewayIP;
printf("Gateway Address:%-30s\n", ::inet_ntoa(in));
in.S_un.S_addr = g_dwMask;
printf("MASK Address:%-30s\n", ::inet_ntoa(in));
u_char* p = g_ucLocalMac;
printf("MAC:%02X-%02X-%02X-%02X-%02X-%02X\n", p, p, p, p, p, p);
::GlobalFree(pAdapterInfo);
pAdapterInfo = NULL;
return TRUE;
}
void main()
{
CInitSock initSock;
GetGlobalData();
printf("*******************************");
getchar();
}
页:
[1]