看流星社区

 找回密码
 注册账号
查看: 1876|回复: 0

得到本机的MAC,IP, MASK地址

[复制链接]

该用户从未签到

发表于 2017-6-2 13:22:41 | 显示全部楼层 |阅读模式
#include "InitSock.h"
#include <stdio.h>

#include <iphlpapi.h>
#pragma comment(lib, "IPHLPAPI.lib")

u_char g_ucLocalMac[6];
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[0], p[1], p[2], p[3], p[4], p[5]);
        ::GlobalFree(pAdapterInfo);
        pAdapterInfo = NULL;
        return TRUE;
}

void main()
{
        CInitSock initSock;
       
        GetGlobalData();

        printf("*******************************");
        getchar();
}
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-4-18 11:04

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表