工控编程吧

标题: 上位机MFC如何获得本地计算机的子网掩码 [打印本页]

作者: qq263946146    时间: 2019-8-8 10:26
标题: 上位机MFC如何获得本地计算机的子网掩码
同样获取子网掩码,也是借助微软的IPHLEAPI库。

  1. #include "IPHlpApi.h"
  2. #pragma comment(lib,"IPHLPAPI.LIB")
  3. #pragma comment(lib,"netapi32.lib ")

  4. void CGkbc8Dlg::OnButton2()
  5. {
  6.         //获得需要的缓冲区大小
  7.         DWORD nLength = 0;
  8.         if (GetAdaptersInfo(NULL, &nLength) != ERROR_BUFFER_OVERFLOW)
  9.         {
  10.                 return;
  11.         }

  12.         IP_ADAPTER_INFO* pAdapterInfo = (IP_ADAPTER_INFO*)new BYTE[nLength];

  13.         //获得本地计算机网卡信息
  14.         if (GetAdaptersInfo(pAdapterInfo, &nLength) != ERROR_SUCCESS)
  15.         {
  16.                 delete[] pAdapterInfo;
  17.                 return;
  18.         }

  19.         //获得本地计算机子网掩码
  20.         CString strText =_T("本地计算机的子网掩码:\n");
  21.         IP_ADAPTER_INFO* pCurrentAdapterInfo = pAdapterInfo;
  22.         while (pCurrentAdapterInfo != NULL)
  23.         {
  24.                 CString strTemp = _T("");
  25.                 strTemp.Format(_T("%s\n"),
  26.                         pCurrentAdapterInfo->IpAddressList.IpMask.String);
  27.                 strText += strTemp;
  28.                 pCurrentAdapterInfo = pCurrentAdapterInfo->Next;
  29.         }
  30.         AfxMessageBox(strText);

  31.         delete[] pAdapterInfo;
  32. }
复制代码
上面代码实现后会弹出结果对话框。
(, 下载次数: 1)