获取本机IP地址

    技术2022-05-20  83

        CString strLocalIP;

     

        char szHostName[64];     memset(szHostName, 0x00, sizeof(szHostName));     gethostname(szHostName, sizeof(szHostName));     PHOSTENT pHost = gethostbyname(szHostName);     if (pHost == NULL)     {         strLocalIP = _T("");     }     else     {         char* *pAddrList;         pAddrList = pHost->h_addr_list; // 顾名思义,h_addr_list,就是地址列表,因为一个机器可以有多个IP地址,所以叫做列表         strLocalIP = inet_ntoa(*((in_addr*)(*pAddrList))); // 结构体转换用指针形式,如果把pAddrList看做数组的话,等于取的pAddrList[0]     }

     

     

    基于上面的理论,获取机器的多个IP可以这样:

     

     

    char **addr_list   =   pHost-> h_addr_list; while(addr_list[i]   !=   NULL) { CStrint strAddr   =   inet_ntoa(*((LPIN_ADDR)addr_list[i])); i++; }

     

     


    最新回复(0)