源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C++获取本机MAC,IP,MASK地址的方法

  • 时间:2020-08-17 21:59 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C++获取本机MAC,IP,MASK地址的方法
本文实例讲述了C++获取本机MAC,IP,MASK地址的方法,分享给大家供大家参考。具体方法如下:
[u]复制代码[/u] 代码如下:
#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, &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:X-X-X-X-X-X\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();  }
希望本文所述对大家的C++程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部