一个网卡绑定两个IP,怎么用gethostbyname函数获取这两个IP

一个网卡绑定两个IP,如何用gethostbyname函数获取这两个IP
我在写NAT检测的程序,服务器端需要一个网卡上绑定了两个IP,目前只能用gethostbyname函数获取一个,我怎么才能将这两个IP都获取呢?

------解决方案--------------------
C/C++ code
//--------------------------------//
//                作者:刘文涛                                        //
//                书籍:《网络安全编程技术与实例》                    //
//--------------------------------//
#include "winsock.h" 
#include <stdio.h>
#pragma comment(lib,"Ws2_32.lib")
void main()
{
    WSADATA wsaData;
    char HostName[255];
    HOSTENT *Hostent;
    int Result;
    Result = WSAStartup(MAKEWORD(2, 1), &wsaData);
    if (Result == SOCKET_ERROR)
    {
        printf("WSAStartup failed with error %d\n", Result);
        return ;
    }
    Result = gethostname(HostName, 255);
    printf("主机名称为:%s\n", HostName);
    if (Result == SOCKET_ERROR)
    {
        printf("gethostname failed with error %d\n", WSAGetLastError());
        return ;
    }
    Hostent = (struct hostent*)malloc(sizeof(struct hostent));
    Hostent = gethostbyname(HostName);

    for (int i = 0;; i++)
    {
        if(!Hostent->h_addr_list[i])//rendb add
            break;
        printf("第%d个网络接口:\n", i + 1);
        printf("IP地址:%s\n", inet_ntoa(*(IN_ADDR*)(Hostent->h_addr_list[i])));
        /*if (Hostent->h_addr_list[i] + Hostent->h_length >= Hostent->h_name)
        {
            break;
        } */ //very bad!!! confused and error oriented
    }
    //WSASocket
    i=0;//rendb add
    char **ptr=Hostent->h_addr_list;
    for(; ptr[i];i++)
    {
        printf("\n\n 2第%d个网络接口:\n", i );
        printf("IP地址:%s\n", inet_ntoa(*(IN_ADDR*)ptr[i]));
    }


    if (WSACleanup() == SOCKET_ERROR)
    {
        printf("WSACleanup failed with error %d\n", WSAGetLastError());
        return ;
    }
}