我用gethostbyname来得到指定机器的信息没问题了,可是用gethostbyaddr却不能成功。返回的错误是WSANO_DATA,我不明白到底是什么地方错了,以下是部分代码。   LPHOSTENT phost;
   LPSTR m_addr = m_dc_mIpAddr.GetBuffer(1); //m_dc_mIpAddr是给定的IP地址
   phost = gethostbyaddr((LPCTSTR)m_addr,4,AF_INET);是什么毛病呢?或者谁能给我段好用的源码。

解决方案 »

  1.   

    顺便问一句,能否得到对方机器的网卡MAC地址呢?
      

  2.   

    你看一下 NetBios里面是否指定了机器名
      

  3.   

    LONG lPort=3024; 
    struct sockaddr_in ServerHostAddr;
    ServerHostAddr.sin_family=AF_INET; 
    ServerHostAddr.sin_port=::htons(u_short(lPort)); 
    ServerHostAddr.sin_addr.s_addr=::inet_addr("202.193.64.34"); 
    hostent* pResult=gethostbyaddr((const char *) & 
    (ServerHostAddr.sin_addr.s_addr),4,AF_INET); 
    if(NULL==pResult) 

    int nErrorCode=WSAGetLastError(); 
    CString st;
    st.Format("%d",nErrorCode);
    MessageBox(st);

    else 

    MessageBox(pResult->h_name);
    }