工控编程吧

标题: 上位机MFC如何通过主机名称获得IP地址 [打印本页]

作者: qq263946146    时间: 2019-8-6 11:19
标题: 上位机MFC如何通过主机名称获得IP地址
  1. #include <Winsock2.h>
复制代码
  1. //初始化WinSock
  2.         WSADATA WSAData;
  3.         if (WSAStartup(MAKEWORD(2,0), &WSAData) != 0)
  4.         {
  5.                 return;
  6.         }
  7.        
  8. //获得本地计算机主机名称
  9.         CString strName = _T("");
  10.         gethostname(strName.GetBuffer(1024), 1024);
  11.         strName.ReleaseBuffer();

  12.         //获得主机信息
  13.         struct hostent* pHostEnt = gethostbyname(strName);
  14.         if (pHostEnt == NULL)
  15.         {
  16.                 return;
  17.         }

  18.         //获得主机IP地址
  19.         CString strText = _T("");
  20.         strText.Format(_T("%s的IP地址:\n"), strName);
  21.         int n = 0;
  22.         while (pHostEnt->h_addr_list[n] != NULL)
  23.         {
  24.                 CString strTemp = _T("");
  25.                 strTemp.Format(_T("%d.%d.%d.%d\n"),
  26.                 (pHostEnt->h_addr_list[n][0] & 0x00FF),
  27.                 (pHostEnt->h_addr_list[n][1] & 0x00FF),
  28.                 (pHostEnt->h_addr_list[n][2] & 0x00FF),
  29.                 (pHostEnt->h_addr_list[n][3] & 0x00FF));
  30.                 strText += strTemp;
  31.                 n++;
  32.         }
  33.         AfxMessageBox(strText);

  34.         //清理WinSock
  35.         WSACleanup();       
复制代码



(, 下载次数: 3)