C++ 获取本机全部IP地址(有不止一个IP的情况)

typedef struct tagIPInfo    {        char ip[30];    }IPInfo;    bool GetLocalIPs(IPInfo* ips,int maxCnt,int* cnt)    {        //1.初始化wsa        WSADATA wsaData;        int ret=WSAStartup(MAKEWORD(2,2),&wsaData);        if (ret!=0)        {            return false;        }        //2.获取主机名        char hostname[256];        ret=gethostname(hostname,sizeof(hostname));        if (ret==SOCKET_ERROR)        {            return false;        }        //3.获取主机ip        HOSTENT* host=gethostbyname(hostname);        if (host==NULL)        {            return false;        }        //4.逐个转化为char*并拷贝返回        *cnt=host->h_length<maxCnt?host->h_length:maxCnt;        for (int i=0;i<*cnt;i++)        {            in_addr* addr=(in_addr*)*host->h_addr_list;            strcpy(ips[i].ip,inet_ntoa(addr[i]));        }        return true;    }

单个IP的情况:http://blog.csdn.net/iamoyjj/archive/2011/05/29/6452698.aspx
原文链接: https://www.cnblogs.com/oyjj/archive/2011/05/29/2132864.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/26393

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 上午4:03
下一篇 2023年2月8日 上午4:04

相关推荐