iamplayboy 发表于 2017-6-2 13:22:41

得到本机的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, &amp;ulSize);
        pAdapterInfo = (PIP_ADAPTER_INFO)::GlobalAlloc(GPTR, ulSize);
        if ( ERROR_SUCCESS== ::GetAdaptersInfo(pAdapterInfo, &amp;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]
查看完整版本: 得到本机的MAC,IP, MASK地址