本帖最后由 VisualEleven 于 2012-07-10 07:21:21 编辑

解决方案 »

  1.   

    CString hostName = L"www.sina.com";
    struct hostent FAR * lpHostEnt = gethostbyname((char*)&sHostName?);
    use   W2A(hostName)
      

  2.   

    #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])
    break;
    printf("第%d个网络接口:\n", i + 1);
            printf("IP地址:%s\n", inet_ntoa(*(IN_ADDR*)(Hostent->h_addr_list[i])));    }
     
    i=0;
    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 ;
        }
    }
      

  3.   

    struct hostent FAR * lpHostEnt = gethostbyname(sHostName.GetBuffer(0));//
      

  4.   

    gethostbyname((char*)&sHostName);
    你这里的参数传递的不对
    gethostbyname("www.sina.com")
      

  5.   


    struct hostent FAR * lpHostEnt = gethostbyname((char*)&sHostName);
    change tostruct hostent FAR * lpHostEnt = gethostbyname(sHostName);