网络编程常用知识

网络编程常用知识

1. 如何获取主机名

2. 如何从域名获取IP地址

3. 如何从struct in_addr和struct hostent结构中获取IP地址

    WORD wVersionRequested;
    WSADATA wsaData;
    int err;
    wVersionRequested = MAKEWORD( 2, 2 );
    err = WSAStartup( wVersionRequested, &wsaData );
    if ( err != 0 ) {
        /* Tell the user that we could not find a usable */
        /* WinSock DLL.                                  */
        return FALSE;
    }
    /* Confirm that the WinSock DLL supports 2.2.*/
    /* Note that if the DLL supports versions greater    */
    /* than 2.2 in addition to 2.2, it will still return */
    /* 2.2 in wVersion since that is the version we      */
    /* requested.                                        */
    if ( LOBYTE( wsaData.wVersion ) != 2 ||
        HIBYTE( wsaData.wVersion ) != 2 ) {
        /* Tell the user that we could not find a usable */
        /* WinSock DLL.                                  */
        WSACleanup( );
        return FALSE;
    }

    char hostname[255];

    struct hostent *hst = gethostbyname(www.126.com) ;
    struct   in_addr   ia; 

    if(hst   !=   NULL)  
    {  
        memcpy(&ia.s_addr,hst->h_addr_list[0],sizeof(ia.s_addr));  
        int   iIpLength   =   strlen(inet_ntoa(ia))   +   1;  
        char*   lpcIp   =   new   char[iIpLength];  
        ZeroMemory(lpcIp,iIpLength);  
        strcpy(lpcIp,inet_ntoa(ia));  

       delete []lpclp;

  }

    int i = gethostname(hostname, 255);

            WSACleanup( );

你可能感兴趣的:(网络编程常用知识)