对给定的一个计算机的IP地址,如何得到其计算机名字?

解决方案 »

  1.   

    szIP 为指定的 IP  szMacName 为返回的机器名
    //根据指定的IP获取主机名
    void GetHostNameByAddr(char* szMacName,char* szIP)
    {
    if( szIP == NULL )
    return; WORD wVersionRequested;
    WSADATA wsaData;
    PHOSTENT hostinfo;
    wVersionRequested = MAKEWORD( 2, 0 ); int lHostAddr;
    lHostAddr = inet_addr(szIP); if ( ::WSAStartup( wVersionRequested, &wsaData ) == 0 )
    {
    //获取指定的IP的机器相关信息
    //if((hostinfo = gethostbyaddr((char*)&lHostAddr,4,PF_INET)) != NULL)
    //                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    if((hostinfo = gethostbyaddr((char*)&lHostAddr,4,AF_INET)) != NULL)
    {
    if( szMacName != NULL )
    strcpy(szMacName,hostinfo->h_name);
    }
    else
    {
    if( szMacName != NULL )
    strcpy(szMacName,"不能获取");
    }
        
    WSACleanup( );

    }
    在 INTERNET 上不是所有的机器可以获取, 局域网内可以
    你只给 20 分太少了吧  :)
      

  2.   

    Saimen(单身情人):兄(对否)
      多谢,问题解决了。 这次散的分确实太少,只是小弟第一次上这个网站,不知道散分的意思,这次注意,下一次一定恶散分!!